diff options
43 files changed, 362 insertions, 375 deletions
diff --git a/drivers/char/drm/Kconfig b/drivers/char/drm/Kconfig index ba3058dd39a7..610d6fd5bb50 100644 --- a/drivers/char/drm/Kconfig +++ b/drivers/char/drm/Kconfig | |||
| @@ -38,7 +38,7 @@ config DRM_RADEON | |||
| 38 | Choose this option if you have an ATI Radeon graphics card. There | 38 | Choose this option if you have an ATI Radeon graphics card. There |
| 39 | are both PCI and AGP versions. You don't need to choose this to | 39 | are both PCI and AGP versions. You don't need to choose this to |
| 40 | run the Radeon in plain VGA mode. | 40 | run the Radeon in plain VGA mode. |
| 41 | 41 | ||
| 42 | If M is selected, the module will be called radeon. | 42 | If M is selected, the module will be called radeon. |
| 43 | 43 | ||
| 44 | config DRM_I810 | 44 | config DRM_I810 |
| @@ -71,9 +71,9 @@ config DRM_I915 | |||
| 71 | 852GM, 855GM 865G or 915G integrated graphics. If M is selected, the | 71 | 852GM, 855GM 865G or 915G integrated graphics. If M is selected, the |
| 72 | module will be called i915. AGP support is required for this driver | 72 | module will be called i915. AGP support is required for this driver |
| 73 | to work. This driver is used by the Intel driver in X.org 6.8 and | 73 | to work. This driver is used by the Intel driver in X.org 6.8 and |
| 74 | XFree86 4.4 and above. If unsure, build this and i830 as modules and | 74 | XFree86 4.4 and above. If unsure, build this and i830 as modules and |
| 75 | the X server will load the correct one. | 75 | the X server will load the correct one. |
| 76 | 76 | ||
| 77 | endchoice | 77 | endchoice |
| 78 | 78 | ||
| 79 | config DRM_MGA | 79 | config DRM_MGA |
| @@ -88,7 +88,7 @@ config DRM_SIS | |||
| 88 | tristate "SiS video cards" | 88 | tristate "SiS video cards" |
| 89 | depends on DRM && AGP | 89 | depends on DRM && AGP |
| 90 | help | 90 | help |
| 91 | Choose this option if you have a SiS 630 or compatible video | 91 | Choose this option if you have a SiS 630 or compatible video |
| 92 | chipset. If M is selected the module will be called sis. AGP | 92 | chipset. If M is selected the module will be called sis. AGP |
| 93 | support is required for this driver to work. | 93 | support is required for this driver to work. |
| 94 | 94 | ||
| @@ -105,4 +105,3 @@ config DRM_SAVAGE | |||
| 105 | help | 105 | help |
| 106 | Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister | 106 | Choose this option if you have a Savage3D/4/SuperSavage/Pro/Twister |
| 107 | chipset. If M is selected the module will be called savage. | 107 | chipset. If M is selected the module will be called savage. |
| 108 | |||
diff --git a/drivers/char/drm/Makefile b/drivers/char/drm/Makefile index 6915a0599dfb..1283ded88ead 100644 --- a/drivers/char/drm/Makefile +++ b/drivers/char/drm/Makefile | |||
| @@ -38,5 +38,3 @@ obj-$(CONFIG_DRM_I915) += i915.o | |||
| 38 | obj-$(CONFIG_DRM_SIS) += sis.o | 38 | obj-$(CONFIG_DRM_SIS) += sis.o |
| 39 | obj-$(CONFIG_DRM_SAVAGE)+= savage.o | 39 | obj-$(CONFIG_DRM_SAVAGE)+= savage.o |
| 40 | obj-$(CONFIG_DRM_VIA) +=via.o | 40 | obj-$(CONFIG_DRM_VIA) +=via.o |
| 41 | |||
| 42 | |||
diff --git a/drivers/char/drm/README.drm b/drivers/char/drm/README.drm index af74cd79a279..b5b332722581 100644 --- a/drivers/char/drm/README.drm +++ b/drivers/char/drm/README.drm | |||
| @@ -41,4 +41,3 @@ For specific information about kernel-level support, see: | |||
| 41 | 41 | ||
| 42 | A Security Analysis of the Direct Rendering Infrastructure | 42 | A Security Analysis of the Direct Rendering Infrastructure |
| 43 | http://dri.sourceforge.net/doc/security_low_level.html | 43 | http://dri.sourceforge.net/doc/security_low_level.html |
| 44 | |||
diff --git a/drivers/char/drm/drm_bufs.c b/drivers/char/drm/drm_bufs.c index d24a6c2c2c24..d65e75d405fa 100644 --- a/drivers/char/drm/drm_bufs.c +++ b/drivers/char/drm/drm_bufs.c | |||
| @@ -184,7 +184,7 @@ static int drm_addmap_core(struct drm_device * dev, unsigned int offset, | |||
| 184 | return -ENOMEM; | 184 | return -ENOMEM; |
| 185 | } | 185 | } |
| 186 | } | 186 | } |
| 187 | 187 | ||
| 188 | break; | 188 | break; |
| 189 | case _DRM_SHM: | 189 | case _DRM_SHM: |
| 190 | list = drm_find_matching_map(dev, map); | 190 | list = drm_find_matching_map(dev, map); |
| @@ -814,9 +814,9 @@ int drm_addbufs_pci(struct drm_device * dev, struct drm_buf_desc * request) | |||
| 814 | page_count = 0; | 814 | page_count = 0; |
| 815 | 815 | ||
| 816 | while (entry->buf_count < count) { | 816 | while (entry->buf_count < count) { |
| 817 | 817 | ||
| 818 | dmah = drm_pci_alloc(dev, PAGE_SIZE << page_order, 0x1000, 0xfffffffful); | 818 | dmah = drm_pci_alloc(dev, PAGE_SIZE << page_order, 0x1000, 0xfffffffful); |
| 819 | 819 | ||
| 820 | if (!dmah) { | 820 | if (!dmah) { |
| 821 | /* Set count correctly so we free the proper amount. */ | 821 | /* Set count correctly so we free the proper amount. */ |
| 822 | entry->buf_count = count; | 822 | entry->buf_count = count; |
| @@ -1592,5 +1592,3 @@ int drm_order(unsigned long size) | |||
| 1592 | return order; | 1592 | return order; |
| 1593 | } | 1593 | } |
| 1594 | EXPORT_SYMBOL(drm_order); | 1594 | EXPORT_SYMBOL(drm_order); |
| 1595 | |||
| 1596 | |||
diff --git a/drivers/char/drm/drm_context.c b/drivers/char/drm/drm_context.c index 17fe69e7bfc1..d505f695421f 100644 --- a/drivers/char/drm/drm_context.c +++ b/drivers/char/drm/drm_context.c | |||
| @@ -159,7 +159,7 @@ int drm_getsareactx(struct drm_device *dev, void *data, | |||
| 159 | request->handle = NULL; | 159 | request->handle = NULL; |
| 160 | list_for_each_entry(_entry, &dev->maplist, head) { | 160 | list_for_each_entry(_entry, &dev->maplist, head) { |
| 161 | if (_entry->map == map) { | 161 | if (_entry->map == map) { |
| 162 | request->handle = | 162 | request->handle = |
| 163 | (void *)(unsigned long)_entry->user_token; | 163 | (void *)(unsigned long)_entry->user_token; |
| 164 | break; | 164 | break; |
| 165 | } | 165 | } |
diff --git a/drivers/char/drm/drm_hashtab.c b/drivers/char/drm/drm_hashtab.c index 4b8e7db5a232..33160673a7b7 100644 --- a/drivers/char/drm/drm_hashtab.c +++ b/drivers/char/drm/drm_hashtab.c | |||
| @@ -80,7 +80,7 @@ void drm_ht_verbose_list(struct drm_open_hash *ht, unsigned long key) | |||
| 80 | } | 80 | } |
| 81 | } | 81 | } |
| 82 | 82 | ||
| 83 | static struct hlist_node *drm_ht_find_key(struct drm_open_hash *ht, | 83 | static struct hlist_node *drm_ht_find_key(struct drm_open_hash *ht, |
| 84 | unsigned long key) | 84 | unsigned long key) |
| 85 | { | 85 | { |
| 86 | struct drm_hash_item *entry; | 86 | struct drm_hash_item *entry; |
| @@ -129,7 +129,7 @@ int drm_ht_insert_item(struct drm_open_hash *ht, struct drm_hash_item *item) | |||
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | /* | 131 | /* |
| 132 | * Just insert an item and return any "bits" bit key that hasn't been | 132 | * Just insert an item and return any "bits" bit key that hasn't been |
| 133 | * used before. | 133 | * used before. |
| 134 | */ | 134 | */ |
| 135 | int drm_ht_just_insert_please(struct drm_open_hash *ht, struct drm_hash_item *item, | 135 | int drm_ht_just_insert_please(struct drm_open_hash *ht, struct drm_hash_item *item, |
| @@ -200,4 +200,3 @@ void drm_ht_remove(struct drm_open_hash *ht) | |||
| 200 | ht->table = NULL; | 200 | ht->table = NULL; |
| 201 | } | 201 | } |
| 202 | } | 202 | } |
| 203 | |||
diff --git a/drivers/char/drm/drm_hashtab.h b/drivers/char/drm/drm_hashtab.h index 573e333ac457..cd2b189e1be6 100644 --- a/drivers/char/drm/drm_hashtab.h +++ b/drivers/char/drm/drm_hashtab.h | |||
| @@ -65,4 +65,3 @@ extern void drm_ht_remove(struct drm_open_hash *ht); | |||
| 65 | 65 | ||
| 66 | 66 | ||
| 67 | #endif | 67 | #endif |
| 68 | |||
diff --git a/drivers/char/drm/drm_ioctl.c b/drivers/char/drm/drm_ioctl.c index 3cbebf868e68..b4d86a3343c6 100644 --- a/drivers/char/drm/drm_ioctl.c +++ b/drivers/char/drm/drm_ioctl.c | |||
| @@ -234,7 +234,7 @@ int drm_getclient(struct drm_device *dev, void *data, | |||
| 234 | 234 | ||
| 235 | idx = client->idx; | 235 | idx = client->idx; |
| 236 | mutex_lock(&dev->struct_mutex); | 236 | mutex_lock(&dev->struct_mutex); |
| 237 | 237 | ||
| 238 | if (list_empty(&dev->filelist)) { | 238 | if (list_empty(&dev->filelist)) { |
| 239 | mutex_unlock(&dev->struct_mutex); | 239 | mutex_unlock(&dev->struct_mutex); |
| 240 | return -EINVAL; | 240 | return -EINVAL; |
diff --git a/drivers/char/drm/drm_memory.c b/drivers/char/drm/drm_memory.c index 93019901bd30..845081b44f63 100644 --- a/drivers/char/drm/drm_memory.c +++ b/drivers/char/drm/drm_memory.c | |||
| @@ -179,4 +179,3 @@ void drm_core_ioremapfree(struct drm_map *map, struct drm_device *dev) | |||
| 179 | iounmap(map->handle); | 179 | iounmap(map->handle); |
| 180 | } | 180 | } |
| 181 | EXPORT_SYMBOL(drm_core_ioremapfree); | 181 | EXPORT_SYMBOL(drm_core_ioremapfree); |
| 182 | |||
diff --git a/drivers/char/drm/drm_mm.c b/drivers/char/drm/drm_mm.c index 86f4eb61a6a4..dcff9e9b52e3 100644 --- a/drivers/char/drm/drm_mm.c +++ b/drivers/char/drm/drm_mm.c | |||
| @@ -293,4 +293,3 @@ void drm_mm_takedown(struct drm_mm * mm) | |||
| 293 | 293 | ||
| 294 | drm_free(entry, sizeof(*entry), DRM_MEM_MM); | 294 | drm_free(entry, sizeof(*entry), DRM_MEM_MM); |
| 295 | } | 295 | } |
| 296 | |||
diff --git a/drivers/char/drm/drm_os_linux.h b/drivers/char/drm/drm_os_linux.h index daa69c9d8977..8dbd2572b7c3 100644 --- a/drivers/char/drm/drm_os_linux.h +++ b/drivers/char/drm/drm_os_linux.h | |||
| @@ -69,9 +69,9 @@ static __inline__ int mtrr_del(int reg, unsigned long base, unsigned long size) | |||
| 69 | #define DRM_COPY_TO_USER(arg1, arg2, arg3) \ | 69 | #define DRM_COPY_TO_USER(arg1, arg2, arg3) \ |
| 70 | copy_to_user(arg1, arg2, arg3) | 70 | copy_to_user(arg1, arg2, arg3) |
| 71 | /* Macros for copyfrom user, but checking readability only once */ | 71 | /* Macros for copyfrom user, but checking readability only once */ |
| 72 | #define DRM_VERIFYAREA_READ( uaddr, size ) \ | 72 | #define DRM_VERIFYAREA_READ( uaddr, size ) \ |
| 73 | (access_ok( VERIFY_READ, uaddr, size ) ? 0 : -EFAULT) | 73 | (access_ok( VERIFY_READ, uaddr, size ) ? 0 : -EFAULT) |
| 74 | #define DRM_COPY_FROM_USER_UNCHECKED(arg1, arg2, arg3) \ | 74 | #define DRM_COPY_FROM_USER_UNCHECKED(arg1, arg2, arg3) \ |
| 75 | __copy_from_user(arg1, arg2, arg3) | 75 | __copy_from_user(arg1, arg2, arg3) |
| 76 | #define DRM_COPY_TO_USER_UNCHECKED(arg1, arg2, arg3) \ | 76 | #define DRM_COPY_TO_USER_UNCHECKED(arg1, arg2, arg3) \ |
| 77 | __copy_to_user(arg1, arg2, arg3) | 77 | __copy_to_user(arg1, arg2, arg3) |
diff --git a/drivers/char/drm/drm_pciids.h b/drivers/char/drm/drm_pciids.h index 43d3c42df360..c4621beefd56 100644 --- a/drivers/char/drm/drm_pciids.h +++ b/drivers/char/drm/drm_pciids.h | |||
| @@ -312,4 +312,3 @@ | |||
| 312 | {0x8086, 0x2a02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 312 | {0x8086, 0x2a02, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
| 313 | {0x8086, 0x2a12, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ | 313 | {0x8086, 0x2a12, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, \ |
| 314 | {0, 0, 0} | 314 | {0, 0, 0} |
| 315 | |||
diff --git a/drivers/char/drm/drm_sarea.h b/drivers/char/drm/drm_sarea.h index e040f47f369f..480037331e4e 100644 --- a/drivers/char/drm/drm_sarea.h +++ b/drivers/char/drm/drm_sarea.h | |||
| @@ -45,7 +45,7 @@ | |||
| 45 | #endif | 45 | #endif |
| 46 | 46 | ||
| 47 | /** Maximum number of drawables in the SAREA */ | 47 | /** Maximum number of drawables in the SAREA */ |
| 48 | #define SAREA_MAX_DRAWABLES 256 | 48 | #define SAREA_MAX_DRAWABLES 256 |
| 49 | 49 | ||
| 50 | #define SAREA_DRAWABLE_CLAIMED_ENTRY 0x80000000 | 50 | #define SAREA_DRAWABLE_CLAIMED_ENTRY 0x80000000 |
| 51 | 51 | ||
diff --git a/drivers/char/drm/drm_stub.c b/drivers/char/drm/drm_stub.c index ee83ff9efed6..cdde3c3320fa 100644 --- a/drivers/char/drm/drm_stub.c +++ b/drivers/char/drm/drm_stub.c | |||
| @@ -224,7 +224,7 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent, | |||
| 224 | } | 224 | } |
| 225 | if ((ret = drm_get_head(dev, &dev->primary))) | 225 | if ((ret = drm_get_head(dev, &dev->primary))) |
| 226 | goto err_g2; | 226 | goto err_g2; |
| 227 | 227 | ||
| 228 | DRM_INFO("Initialized %s %d.%d.%d %s on minor %d\n", | 228 | DRM_INFO("Initialized %s %d.%d.%d %s on minor %d\n", |
| 229 | driver->name, driver->major, driver->minor, driver->patchlevel, | 229 | driver->name, driver->major, driver->minor, driver->patchlevel, |
| 230 | driver->date, dev->primary.minor); | 230 | driver->date, dev->primary.minor); |
diff --git a/drivers/char/drm/i810_dma.c b/drivers/char/drm/i810_dma.c index eb381a7c5bee..aa2fa9b184ac 100644 --- a/drivers/char/drm/i810_dma.c +++ b/drivers/char/drm/i810_dma.c | |||
| @@ -40,7 +40,7 @@ | |||
| 40 | 40 | ||
| 41 | #define I810_BUF_FREE 2 | 41 | #define I810_BUF_FREE 2 |
| 42 | #define I810_BUF_CLIENT 1 | 42 | #define I810_BUF_CLIENT 1 |
| 43 | #define I810_BUF_HARDWARE 0 | 43 | #define I810_BUF_HARDWARE 0 |
| 44 | 44 | ||
| 45 | #define I810_BUF_UNMAPPED 0 | 45 | #define I810_BUF_UNMAPPED 0 |
| 46 | #define I810_BUF_MAPPED 1 | 46 | #define I810_BUF_MAPPED 1 |
| @@ -848,7 +848,7 @@ static void i810_dma_quiescent(struct drm_device * dev) | |||
| 848 | drm_i810_private_t *dev_priv = dev->dev_private; | 848 | drm_i810_private_t *dev_priv = dev->dev_private; |
| 849 | RING_LOCALS; | 849 | RING_LOCALS; |
| 850 | 850 | ||
| 851 | /* printk("%s\n", __FUNCTION__); */ | 851 | /* printk("%s\n", __FUNCTION__); */ |
| 852 | 852 | ||
| 853 | i810_kernel_lost_context(dev); | 853 | i810_kernel_lost_context(dev); |
| 854 | 854 | ||
| @@ -869,7 +869,7 @@ static int i810_flush_queue(struct drm_device * dev) | |||
| 869 | int i, ret = 0; | 869 | int i, ret = 0; |
| 870 | RING_LOCALS; | 870 | RING_LOCALS; |
| 871 | 871 | ||
| 872 | /* printk("%s\n", __FUNCTION__); */ | 872 | /* printk("%s\n", __FUNCTION__); */ |
| 873 | 873 | ||
| 874 | i810_kernel_lost_context(dev); | 874 | i810_kernel_lost_context(dev); |
| 875 | 875 | ||
diff --git a/drivers/char/drm/i810_drv.h b/drivers/char/drm/i810_drv.h index 0af45872f67e..4de172b2305a 100644 --- a/drivers/char/drm/i810_drv.h +++ b/drivers/char/drm/i810_drv.h | |||
| @@ -25,7 +25,7 @@ | |||
| 25 | * DEALINGS IN THE SOFTWARE. | 25 | * DEALINGS IN THE SOFTWARE. |
| 26 | * | 26 | * |
| 27 | * Authors: Rickard E. (Rik) Faith <faith@valinux.com> | 27 | * Authors: Rickard E. (Rik) Faith <faith@valinux.com> |
| 28 | * Jeff Hartmann <jhartmann@valinux.com> | 28 | * Jeff Hartmann <jhartmann@valinux.com> |
| 29 | * | 29 | * |
| 30 | */ | 30 | */ |
| 31 | 31 | ||
| @@ -134,7 +134,7 @@ extern int i810_max_ioctl; | |||
| 134 | #define I810_ADDR(reg) (I810_BASE(reg) + reg) | 134 | #define I810_ADDR(reg) (I810_BASE(reg) + reg) |
| 135 | #define I810_DEREF(reg) *(__volatile__ int *)I810_ADDR(reg) | 135 | #define I810_DEREF(reg) *(__volatile__ int *)I810_ADDR(reg) |
| 136 | #define I810_READ(reg) I810_DEREF(reg) | 136 | #define I810_READ(reg) I810_DEREF(reg) |
| 137 | #define I810_WRITE(reg,val) do { I810_DEREF(reg) = val; } while (0) | 137 | #define I810_WRITE(reg,val) do { I810_DEREF(reg) = val; } while (0) |
| 138 | #define I810_DEREF16(reg) *(__volatile__ u16 *)I810_ADDR(reg) | 138 | #define I810_DEREF16(reg) *(__volatile__ u16 *)I810_ADDR(reg) |
| 139 | #define I810_READ16(reg) I810_DEREF16(reg) | 139 | #define I810_READ16(reg) I810_DEREF16(reg) |
| 140 | #define I810_WRITE16(reg,val) do { I810_DEREF16(reg) = val; } while (0) | 140 | #define I810_WRITE16(reg,val) do { I810_DEREF16(reg) = val; } while (0) |
| @@ -155,19 +155,19 @@ extern int i810_max_ioctl; | |||
| 155 | } while (0) | 155 | } while (0) |
| 156 | 156 | ||
| 157 | #define ADVANCE_LP_RING() do { \ | 157 | #define ADVANCE_LP_RING() do { \ |
| 158 | if (I810_VERBOSE) DRM_DEBUG("ADVANCE_LP_RING\n"); \ | 158 | if (I810_VERBOSE) DRM_DEBUG("ADVANCE_LP_RING\n"); \ |
| 159 | dev_priv->ring.tail = outring; \ | 159 | dev_priv->ring.tail = outring; \ |
| 160 | I810_WRITE(LP_RING + RING_TAIL, outring); \ | 160 | I810_WRITE(LP_RING + RING_TAIL, outring); \ |
| 161 | } while(0) | 161 | } while(0) |
| 162 | 162 | ||
| 163 | #define OUT_RING(n) do { \ | 163 | #define OUT_RING(n) do { \ |
| 164 | if (I810_VERBOSE) DRM_DEBUG(" OUT_RING %x\n", (int)(n)); \ | 164 | if (I810_VERBOSE) DRM_DEBUG(" OUT_RING %x\n", (int)(n)); \ |
| 165 | *(volatile unsigned int *)(virt + outring) = n; \ | 165 | *(volatile unsigned int *)(virt + outring) = n; \ |
| 166 | outring += 4; \ | 166 | outring += 4; \ |
| 167 | outring &= ringmask; \ | 167 | outring &= ringmask; \ |
| 168 | } while (0) | 168 | } while (0) |
| 169 | 169 | ||
| 170 | #define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23)) | 170 | #define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23)) |
| 171 | #define GFX_OP_BREAKPOINT_INTERRUPT ((0<<29)|(1<<23)) | 171 | #define GFX_OP_BREAKPOINT_INTERRUPT ((0<<29)|(1<<23)) |
| 172 | #define CMD_REPORT_HEAD (7<<23) | 172 | #define CMD_REPORT_HEAD (7<<23) |
| 173 | #define CMD_STORE_DWORD_IDX ((0x21<<23) | 0x1) | 173 | #define CMD_STORE_DWORD_IDX ((0x21<<23) | 0x1) |
| @@ -184,28 +184,28 @@ extern int i810_max_ioctl; | |||
| 184 | 184 | ||
| 185 | #define I810REG_HWSTAM 0x02098 | 185 | #define I810REG_HWSTAM 0x02098 |
| 186 | #define I810REG_INT_IDENTITY_R 0x020a4 | 186 | #define I810REG_INT_IDENTITY_R 0x020a4 |
| 187 | #define I810REG_INT_MASK_R 0x020a8 | 187 | #define I810REG_INT_MASK_R 0x020a8 |
| 188 | #define I810REG_INT_ENABLE_R 0x020a0 | 188 | #define I810REG_INT_ENABLE_R 0x020a0 |
| 189 | 189 | ||
| 190 | #define LP_RING 0x2030 | 190 | #define LP_RING 0x2030 |
| 191 | #define HP_RING 0x2040 | 191 | #define HP_RING 0x2040 |
| 192 | #define RING_TAIL 0x00 | 192 | #define RING_TAIL 0x00 |
| 193 | #define TAIL_ADDR 0x000FFFF8 | 193 | #define TAIL_ADDR 0x000FFFF8 |
| 194 | #define RING_HEAD 0x04 | 194 | #define RING_HEAD 0x04 |
| 195 | #define HEAD_WRAP_COUNT 0xFFE00000 | 195 | #define HEAD_WRAP_COUNT 0xFFE00000 |
| 196 | #define HEAD_WRAP_ONE 0x00200000 | 196 | #define HEAD_WRAP_ONE 0x00200000 |
| 197 | #define HEAD_ADDR 0x001FFFFC | 197 | #define HEAD_ADDR 0x001FFFFC |
| 198 | #define RING_START 0x08 | 198 | #define RING_START 0x08 |
| 199 | #define START_ADDR 0x00FFFFF8 | 199 | #define START_ADDR 0x00FFFFF8 |
| 200 | #define RING_LEN 0x0C | 200 | #define RING_LEN 0x0C |
| 201 | #define RING_NR_PAGES 0x000FF000 | 201 | #define RING_NR_PAGES 0x000FF000 |
| 202 | #define RING_REPORT_MASK 0x00000006 | 202 | #define RING_REPORT_MASK 0x00000006 |
| 203 | #define RING_REPORT_64K 0x00000002 | 203 | #define RING_REPORT_64K 0x00000002 |
| 204 | #define RING_REPORT_128K 0x00000004 | 204 | #define RING_REPORT_128K 0x00000004 |
| 205 | #define RING_NO_REPORT 0x00000000 | 205 | #define RING_NO_REPORT 0x00000000 |
| 206 | #define RING_VALID_MASK 0x00000001 | 206 | #define RING_VALID_MASK 0x00000001 |
| 207 | #define RING_VALID 0x00000001 | 207 | #define RING_VALID 0x00000001 |
| 208 | #define RING_INVALID 0x00000000 | 208 | #define RING_INVALID 0x00000000 |
| 209 | 209 | ||
| 210 | #define GFX_OP_SCISSOR ((0x3<<29)|(0x1c<<24)|(0x10<<19)) | 210 | #define GFX_OP_SCISSOR ((0x3<<29)|(0x1c<<24)|(0x10<<19)) |
| 211 | #define SC_UPDATE_SCISSOR (0x1<<1) | 211 | #define SC_UPDATE_SCISSOR (0x1<<1) |
diff --git a/drivers/char/drm/i830_dma.c b/drivers/char/drm/i830_dma.c index 69a363edb0d2..379cbdad4921 100644 --- a/drivers/char/drm/i830_dma.c +++ b/drivers/char/drm/i830_dma.c | |||
| @@ -42,7 +42,7 @@ | |||
| 42 | 42 | ||
| 43 | #define I830_BUF_FREE 2 | 43 | #define I830_BUF_FREE 2 |
| 44 | #define I830_BUF_CLIENT 1 | 44 | #define I830_BUF_CLIENT 1 |
| 45 | #define I830_BUF_HARDWARE 0 | 45 | #define I830_BUF_HARDWARE 0 |
| 46 | 46 | ||
| 47 | #define I830_BUF_UNMAPPED 0 | 47 | #define I830_BUF_UNMAPPED 0 |
| 48 | #define I830_BUF_MAPPED 1 | 48 | #define I830_BUF_MAPPED 1 |
diff --git a/drivers/char/drm/i830_drm.h b/drivers/char/drm/i830_drm.h index 968a6d9f9dcb..4b00d2dd4f68 100644 --- a/drivers/char/drm/i830_drm.h +++ b/drivers/char/drm/i830_drm.h | |||
| @@ -12,9 +12,9 @@ | |||
| 12 | #define _I830_DEFINES_ | 12 | #define _I830_DEFINES_ |
| 13 | 13 | ||
| 14 | #define I830_DMA_BUF_ORDER 12 | 14 | #define I830_DMA_BUF_ORDER 12 |
| 15 | #define I830_DMA_BUF_SZ (1<<I830_DMA_BUF_ORDER) | 15 | #define I830_DMA_BUF_SZ (1<<I830_DMA_BUF_ORDER) |
| 16 | #define I830_DMA_BUF_NR 256 | 16 | #define I830_DMA_BUF_NR 256 |
| 17 | #define I830_NR_SAREA_CLIPRECTS 8 | 17 | #define I830_NR_SAREA_CLIPRECTS 8 |
| 18 | 18 | ||
| 19 | /* Each region is a minimum of 64k, and there are at most 64 of them. | 19 | /* Each region is a minimum of 64k, and there are at most 64 of them. |
| 20 | */ | 20 | */ |
| @@ -58,7 +58,7 @@ | |||
| 58 | #define I830_UPLOAD_TEXBLEND_MASK 0xf00000 | 58 | #define I830_UPLOAD_TEXBLEND_MASK 0xf00000 |
| 59 | #define I830_UPLOAD_TEX_PALETTE_N(n) (0x1000000 << (n)) | 59 | #define I830_UPLOAD_TEX_PALETTE_N(n) (0x1000000 << (n)) |
| 60 | #define I830_UPLOAD_TEX_PALETTE_SHARED 0x4000000 | 60 | #define I830_UPLOAD_TEX_PALETTE_SHARED 0x4000000 |
| 61 | #define I830_UPLOAD_STIPPLE 0x8000000 | 61 | #define I830_UPLOAD_STIPPLE 0x8000000 |
| 62 | 62 | ||
| 63 | /* Indices into buf.Setup where various bits of state are mirrored per | 63 | /* Indices into buf.Setup where various bits of state are mirrored per |
| 64 | * context and per buffer. These can be fired at the card as a unit, | 64 | * context and per buffer. These can be fired at the card as a unit, |
diff --git a/drivers/char/drm/i830_drv.h b/drivers/char/drm/i830_drv.h index db3a9fa83960..9843df831d7e 100644 --- a/drivers/char/drm/i830_drv.h +++ b/drivers/char/drm/i830_drv.h | |||
| @@ -25,7 +25,7 @@ | |||
| 25 | * DEALINGS IN THE SOFTWARE. | 25 | * DEALINGS IN THE SOFTWARE. |
| 26 | * | 26 | * |
| 27 | * Authors: Rickard E. (Rik) Faith <faith@valinux.com> | 27 | * Authors: Rickard E. (Rik) Faith <faith@valinux.com> |
| 28 | * Jeff Hartmann <jhartmann@valinux.com> | 28 | * Jeff Hartmann <jhartmann@valinux.com> |
| 29 | * | 29 | * |
| 30 | */ | 30 | */ |
| 31 | 31 | ||
| @@ -183,7 +183,7 @@ extern int i830_driver_device_is_agp(struct drm_device * dev); | |||
| 183 | 183 | ||
| 184 | extern int i830_wait_ring(struct drm_device * dev, int n, const char *caller); | 184 | extern int i830_wait_ring(struct drm_device * dev, int n, const char *caller); |
| 185 | 185 | ||
| 186 | #define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23)) | 186 | #define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23)) |
| 187 | #define GFX_OP_BREAKPOINT_INTERRUPT ((0<<29)|(1<<23)) | 187 | #define GFX_OP_BREAKPOINT_INTERRUPT ((0<<29)|(1<<23)) |
| 188 | #define CMD_REPORT_HEAD (7<<23) | 188 | #define CMD_REPORT_HEAD (7<<23) |
| 189 | #define CMD_STORE_DWORD_IDX ((0x21<<23) | 0x1) | 189 | #define CMD_STORE_DWORD_IDX ((0x21<<23) | 0x1) |
| @@ -203,30 +203,30 @@ extern int i830_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
| 203 | 203 | ||
| 204 | #define I830REG_HWSTAM 0x02098 | 204 | #define I830REG_HWSTAM 0x02098 |
| 205 | #define I830REG_INT_IDENTITY_R 0x020a4 | 205 | #define I830REG_INT_IDENTITY_R 0x020a4 |
| 206 | #define I830REG_INT_MASK_R 0x020a8 | 206 | #define I830REG_INT_MASK_R 0x020a8 |
| 207 | #define I830REG_INT_ENABLE_R 0x020a0 | 207 | #define I830REG_INT_ENABLE_R 0x020a0 |
| 208 | 208 | ||
| 209 | #define I830_IRQ_RESERVED ((1<<13)|(3<<2)) | 209 | #define I830_IRQ_RESERVED ((1<<13)|(3<<2)) |
| 210 | 210 | ||
| 211 | #define LP_RING 0x2030 | 211 | #define LP_RING 0x2030 |
| 212 | #define HP_RING 0x2040 | 212 | #define HP_RING 0x2040 |
| 213 | #define RING_TAIL 0x00 | 213 | #define RING_TAIL 0x00 |
| 214 | #define TAIL_ADDR 0x001FFFF8 | 214 | #define TAIL_ADDR 0x001FFFF8 |
| 215 | #define RING_HEAD 0x04 | 215 | #define RING_HEAD 0x04 |
| 216 | #define HEAD_WRAP_COUNT 0xFFE00000 | 216 | #define HEAD_WRAP_COUNT 0xFFE00000 |
| 217 | #define HEAD_WRAP_ONE 0x00200000 | 217 | #define HEAD_WRAP_ONE 0x00200000 |
| 218 | #define HEAD_ADDR 0x001FFFFC | 218 | #define HEAD_ADDR 0x001FFFFC |
| 219 | #define RING_START 0x08 | 219 | #define RING_START 0x08 |
| 220 | #define START_ADDR 0x0xFFFFF000 | 220 | #define START_ADDR 0x0xFFFFF000 |
| 221 | #define RING_LEN 0x0C | 221 | #define RING_LEN 0x0C |
| 222 | #define RING_NR_PAGES 0x001FF000 | 222 | #define RING_NR_PAGES 0x001FF000 |
| 223 | #define RING_REPORT_MASK 0x00000006 | 223 | #define RING_REPORT_MASK 0x00000006 |
| 224 | #define RING_REPORT_64K 0x00000002 | 224 | #define RING_REPORT_64K 0x00000002 |
| 225 | #define RING_REPORT_128K 0x00000004 | 225 | #define RING_REPORT_128K 0x00000004 |
| 226 | #define RING_NO_REPORT 0x00000000 | 226 | #define RING_NO_REPORT 0x00000000 |
| 227 | #define RING_VALID_MASK 0x00000001 | 227 | #define RING_VALID_MASK 0x00000001 |
| 228 | #define RING_VALID 0x00000001 | 228 | #define RING_VALID 0x00000001 |
| 229 | #define RING_INVALID 0x00000000 | 229 | #define RING_INVALID 0x00000000 |
| 230 | 230 | ||
| 231 | #define GFX_OP_SCISSOR ((0x3<<29)|(0x1c<<24)|(0x10<<19)) | 231 | #define GFX_OP_SCISSOR ((0x3<<29)|(0x1c<<24)|(0x10<<19)) |
| 232 | #define SC_UPDATE_SCISSOR (0x1<<1) | 232 | #define SC_UPDATE_SCISSOR (0x1<<1) |
| @@ -279,9 +279,9 @@ extern int i830_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
| 279 | #define XY_SRC_COPY_BLT_WRITE_ALPHA (1<<21) | 279 | #define XY_SRC_COPY_BLT_WRITE_ALPHA (1<<21) |
| 280 | #define XY_SRC_COPY_BLT_WRITE_RGB (1<<20) | 280 | #define XY_SRC_COPY_BLT_WRITE_RGB (1<<20) |
| 281 | 281 | ||
| 282 | #define MI_BATCH_BUFFER ((0x30<<23)|1) | 282 | #define MI_BATCH_BUFFER ((0x30<<23)|1) |
| 283 | #define MI_BATCH_BUFFER_START (0x31<<23) | 283 | #define MI_BATCH_BUFFER_START (0x31<<23) |
| 284 | #define MI_BATCH_BUFFER_END (0xA<<23) | 284 | #define MI_BATCH_BUFFER_END (0xA<<23) |
| 285 | #define MI_BATCH_NON_SECURE (1) | 285 | #define MI_BATCH_NON_SECURE (1) |
| 286 | 286 | ||
| 287 | #define MI_WAIT_FOR_EVENT ((0x3<<23)) | 287 | #define MI_WAIT_FOR_EVENT ((0x3<<23)) |
diff --git a/drivers/char/drm/i830_irq.c b/drivers/char/drm/i830_irq.c index 76403f4b6200..a33db5f0967f 100644 --- a/drivers/char/drm/i830_irq.c +++ b/drivers/char/drm/i830_irq.c | |||
| @@ -144,7 +144,7 @@ int i830_irq_wait(struct drm_device *dev, void *data, | |||
| 144 | struct drm_file *file_priv) | 144 | struct drm_file *file_priv) |
| 145 | { | 145 | { |
| 146 | drm_i830_private_t *dev_priv = dev->dev_private; | 146 | drm_i830_private_t *dev_priv = dev->dev_private; |
| 147 | drm_i830_irq_wait_t *irqwait = data; | 147 | drm_i830_irq_wait_t *irqwait = data; |
| 148 | 148 | ||
| 149 | if (!dev_priv) { | 149 | if (!dev_priv) { |
| 150 | DRM_ERROR("%s called with no initialization\n", __FUNCTION__); | 150 | DRM_ERROR("%s called with no initialization\n", __FUNCTION__); |
diff --git a/drivers/char/drm/i915_dma.c b/drivers/char/drm/i915_dma.c index e61a43e5b3ac..9e4fc96aa0a0 100644 --- a/drivers/char/drm/i915_dma.c +++ b/drivers/char/drm/i915_dma.c | |||
| @@ -351,7 +351,7 @@ static int validate_cmd(int cmd) | |||
| 351 | { | 351 | { |
| 352 | int ret = do_validate_cmd(cmd); | 352 | int ret = do_validate_cmd(cmd); |
| 353 | 353 | ||
| 354 | /* printk("validate_cmd( %x ): %d\n", cmd, ret); */ | 354 | /* printk("validate_cmd( %x ): %d\n", cmd, ret); */ |
| 355 | 355 | ||
| 356 | return ret; | 356 | return ret; |
| 357 | } | 357 | } |
diff --git a/drivers/char/drm/i915_drv.c b/drivers/char/drm/i915_drv.c index 85bcc276f804..63b667538e08 100644 --- a/drivers/char/drm/i915_drv.c +++ b/drivers/char/drm/i915_drv.c | |||
| @@ -77,7 +77,7 @@ static struct drm_driver driver = { | |||
| 77 | .name = DRIVER_NAME, | 77 | .name = DRIVER_NAME, |
| 78 | .id_table = pciidlist, | 78 | .id_table = pciidlist, |
| 79 | }, | 79 | }, |
| 80 | 80 | ||
| 81 | .name = DRIVER_NAME, | 81 | .name = DRIVER_NAME, |
| 82 | .desc = DRIVER_DESC, | 82 | .desc = DRIVER_DESC, |
| 83 | .date = DRIVER_DATE, | 83 | .date = DRIVER_DATE, |
diff --git a/drivers/char/drm/i915_drv.h b/drivers/char/drm/i915_drv.h index e064292e703a..f8cc71915c8e 100644 --- a/drivers/char/drm/i915_drv.h +++ b/drivers/char/drm/i915_drv.h | |||
| @@ -163,7 +163,7 @@ extern void i915_mem_release(struct drm_device * dev, | |||
| 163 | 163 | ||
| 164 | #define I915_READ(reg) DRM_READ32(dev_priv->mmio_map, (reg)) | 164 | #define I915_READ(reg) DRM_READ32(dev_priv->mmio_map, (reg)) |
| 165 | #define I915_WRITE(reg,val) DRM_WRITE32(dev_priv->mmio_map, (reg), (val)) | 165 | #define I915_WRITE(reg,val) DRM_WRITE32(dev_priv->mmio_map, (reg), (val)) |
| 166 | #define I915_READ16(reg) DRM_READ16(dev_priv->mmio_map, (reg)) | 166 | #define I915_READ16(reg) DRM_READ16(dev_priv->mmio_map, (reg)) |
| 167 | #define I915_WRITE16(reg,val) DRM_WRITE16(dev_priv->mmio_map, (reg), (val)) | 167 | #define I915_WRITE16(reg,val) DRM_WRITE16(dev_priv->mmio_map, (reg), (val)) |
| 168 | 168 | ||
| 169 | #define I915_VERBOSE 0 | 169 | #define I915_VERBOSE 0 |
| @@ -200,7 +200,7 @@ extern void i915_mem_release(struct drm_device * dev, | |||
| 200 | 200 | ||
| 201 | extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | 201 | extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); |
| 202 | 202 | ||
| 203 | #define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23)) | 203 | #define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23)) |
| 204 | #define GFX_OP_BREAKPOINT_INTERRUPT ((0<<29)|(1<<23)) | 204 | #define GFX_OP_BREAKPOINT_INTERRUPT ((0<<29)|(1<<23)) |
| 205 | #define CMD_REPORT_HEAD (7<<23) | 205 | #define CMD_REPORT_HEAD (7<<23) |
| 206 | #define CMD_STORE_DWORD_IDX ((0x21<<23) | 0x1) | 206 | #define CMD_STORE_DWORD_IDX ((0x21<<23) | 0x1) |
| @@ -217,7 +217,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
| 217 | 217 | ||
| 218 | #define I915REG_HWSTAM 0x02098 | 218 | #define I915REG_HWSTAM 0x02098 |
| 219 | #define I915REG_INT_IDENTITY_R 0x020a4 | 219 | #define I915REG_INT_IDENTITY_R 0x020a4 |
| 220 | #define I915REG_INT_MASK_R 0x020a8 | 220 | #define I915REG_INT_MASK_R 0x020a8 |
| 221 | #define I915REG_INT_ENABLE_R 0x020a0 | 221 | #define I915REG_INT_ENABLE_R 0x020a0 |
| 222 | 222 | ||
| 223 | #define I915REG_PIPEASTAT 0x70024 | 223 | #define I915REG_PIPEASTAT 0x70024 |
| @@ -229,7 +229,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
| 229 | #define SRX_INDEX 0x3c4 | 229 | #define SRX_INDEX 0x3c4 |
| 230 | #define SRX_DATA 0x3c5 | 230 | #define SRX_DATA 0x3c5 |
| 231 | #define SR01 1 | 231 | #define SR01 1 |
| 232 | #define SR01_SCREEN_OFF (1<<5) | 232 | #define SR01_SCREEN_OFF (1<<5) |
| 233 | 233 | ||
| 234 | #define PPCR 0x61204 | 234 | #define PPCR 0x61204 |
| 235 | #define PPCR_ON (1<<0) | 235 | #define PPCR_ON (1<<0) |
| @@ -249,25 +249,25 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
| 249 | #define ADPA_DPMS_OFF (3<<10) | 249 | #define ADPA_DPMS_OFF (3<<10) |
| 250 | 250 | ||
| 251 | #define NOPID 0x2094 | 251 | #define NOPID 0x2094 |
| 252 | #define LP_RING 0x2030 | 252 | #define LP_RING 0x2030 |
| 253 | #define HP_RING 0x2040 | 253 | #define HP_RING 0x2040 |
| 254 | #define RING_TAIL 0x00 | 254 | #define RING_TAIL 0x00 |
| 255 | #define TAIL_ADDR 0x001FFFF8 | 255 | #define TAIL_ADDR 0x001FFFF8 |
| 256 | #define RING_HEAD 0x04 | 256 | #define RING_HEAD 0x04 |
| 257 | #define HEAD_WRAP_COUNT 0xFFE00000 | 257 | #define HEAD_WRAP_COUNT 0xFFE00000 |
| 258 | #define HEAD_WRAP_ONE 0x00200000 | 258 | #define HEAD_WRAP_ONE 0x00200000 |
| 259 | #define HEAD_ADDR 0x001FFFFC | 259 | #define HEAD_ADDR 0x001FFFFC |
| 260 | #define RING_START 0x08 | 260 | #define RING_START 0x08 |
| 261 | #define START_ADDR 0x0xFFFFF000 | 261 | #define START_ADDR 0x0xFFFFF000 |
| 262 | #define RING_LEN 0x0C | 262 | #define RING_LEN 0x0C |
| 263 | #define RING_NR_PAGES 0x001FF000 | 263 | #define RING_NR_PAGES 0x001FF000 |
| 264 | #define RING_REPORT_MASK 0x00000006 | 264 | #define RING_REPORT_MASK 0x00000006 |
| 265 | #define RING_REPORT_64K 0x00000002 | 265 | #define RING_REPORT_64K 0x00000002 |
| 266 | #define RING_REPORT_128K 0x00000004 | 266 | #define RING_REPORT_128K 0x00000004 |
| 267 | #define RING_NO_REPORT 0x00000000 | 267 | #define RING_NO_REPORT 0x00000000 |
| 268 | #define RING_VALID_MASK 0x00000001 | 268 | #define RING_VALID_MASK 0x00000001 |
| 269 | #define RING_VALID 0x00000001 | 269 | #define RING_VALID 0x00000001 |
| 270 | #define RING_INVALID 0x00000000 | 270 | #define RING_INVALID 0x00000000 |
| 271 | 271 | ||
| 272 | #define GFX_OP_SCISSOR ((0x3<<29)|(0x1c<<24)|(0x10<<19)) | 272 | #define GFX_OP_SCISSOR ((0x3<<29)|(0x1c<<24)|(0x10<<19)) |
| 273 | #define SC_UPDATE_SCISSOR (0x1<<1) | 273 | #define SC_UPDATE_SCISSOR (0x1<<1) |
| @@ -294,9 +294,9 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
| 294 | #define XY_SRC_COPY_BLT_WRITE_ALPHA (1<<21) | 294 | #define XY_SRC_COPY_BLT_WRITE_ALPHA (1<<21) |
| 295 | #define XY_SRC_COPY_BLT_WRITE_RGB (1<<20) | 295 | #define XY_SRC_COPY_BLT_WRITE_RGB (1<<20) |
| 296 | 296 | ||
| 297 | #define MI_BATCH_BUFFER ((0x30<<23)|1) | 297 | #define MI_BATCH_BUFFER ((0x30<<23)|1) |
| 298 | #define MI_BATCH_BUFFER_START (0x31<<23) | 298 | #define MI_BATCH_BUFFER_START (0x31<<23) |
| 299 | #define MI_BATCH_BUFFER_END (0xA<<23) | 299 | #define MI_BATCH_BUFFER_END (0xA<<23) |
| 300 | #define MI_BATCH_NON_SECURE (1) | 300 | #define MI_BATCH_NON_SECURE (1) |
| 301 | #define MI_BATCH_NON_SECURE_I965 (1<<8) | 301 | #define MI_BATCH_NON_SECURE_I965 (1<<8) |
| 302 | 302 | ||
diff --git a/drivers/char/drm/i915_irq.c b/drivers/char/drm/i915_irq.c index a443f4a202e3..3f02ff593bbd 100644 --- a/drivers/char/drm/i915_irq.c +++ b/drivers/char/drm/i915_irq.c | |||
| @@ -291,7 +291,7 @@ static int i915_emit_irq(struct drm_device * dev) | |||
| 291 | OUT_RING(0); | 291 | OUT_RING(0); |
| 292 | OUT_RING(GFX_OP_USER_INTERRUPT); | 292 | OUT_RING(GFX_OP_USER_INTERRUPT); |
| 293 | ADVANCE_LP_RING(); | 293 | ADVANCE_LP_RING(); |
| 294 | 294 | ||
| 295 | return dev_priv->counter; | 295 | return dev_priv->counter; |
| 296 | } | 296 | } |
| 297 | 297 | ||
| @@ -336,7 +336,7 @@ static int i915_driver_vblank_do_wait(struct drm_device *dev, unsigned int *sequ | |||
| 336 | DRM_WAIT_ON(ret, dev->vbl_queue, 3 * DRM_HZ, | 336 | DRM_WAIT_ON(ret, dev->vbl_queue, 3 * DRM_HZ, |
| 337 | (((cur_vblank = atomic_read(counter)) | 337 | (((cur_vblank = atomic_read(counter)) |
| 338 | - *sequence) <= (1<<23))); | 338 | - *sequence) <= (1<<23))); |
| 339 | 339 | ||
| 340 | *sequence = cur_vblank; | 340 | *sequence = cur_vblank; |
| 341 | 341 | ||
| 342 | return ret; | 342 | return ret; |
| @@ -423,7 +423,7 @@ int i915_vblank_pipe_set(struct drm_device *dev, void *data, | |||
| 423 | } | 423 | } |
| 424 | 424 | ||
| 425 | if (pipe->pipe & ~(DRM_I915_VBLANK_PIPE_A|DRM_I915_VBLANK_PIPE_B)) { | 425 | if (pipe->pipe & ~(DRM_I915_VBLANK_PIPE_A|DRM_I915_VBLANK_PIPE_B)) { |
| 426 | DRM_ERROR("%s called with invalid pipe 0x%x\n", | 426 | DRM_ERROR("%s called with invalid pipe 0x%x\n", |
| 427 | __FUNCTION__, pipe->pipe); | 427 | __FUNCTION__, pipe->pipe); |
| 428 | return -EINVAL; | 428 | return -EINVAL; |
| 429 | } | 429 | } |
diff --git a/drivers/char/drm/i915_mem.c b/drivers/char/drm/i915_mem.c index 56fb9b30a5d7..d360896f38a6 100644 --- a/drivers/char/drm/i915_mem.c +++ b/drivers/char/drm/i915_mem.c | |||
| @@ -375,7 +375,7 @@ int i915_mem_destroy_heap( struct drm_device *dev, void *data, | |||
| 375 | DRM_ERROR("get_heap failed"); | 375 | DRM_ERROR("get_heap failed"); |
| 376 | return -EFAULT; | 376 | return -EFAULT; |
| 377 | } | 377 | } |
| 378 | 378 | ||
| 379 | if (!*heap) { | 379 | if (!*heap) { |
| 380 | DRM_ERROR("heap not initialized?"); | 380 | DRM_ERROR("heap not initialized?"); |
| 381 | return -EFAULT; | 381 | return -EFAULT; |
| @@ -384,4 +384,3 @@ int i915_mem_destroy_heap( struct drm_device *dev, void *data, | |||
| 384 | i915_mem_takedown( heap ); | 384 | i915_mem_takedown( heap ); |
| 385 | return 0; | 385 | return 0; |
| 386 | } | 386 | } |
| 387 | |||
diff --git a/drivers/char/drm/mga_dma.c b/drivers/char/drm/mga_dma.c index c567c34cda78..04998b741cad 100644 --- a/drivers/char/drm/mga_dma.c +++ b/drivers/char/drm/mga_dma.c | |||
| @@ -493,7 +493,7 @@ static int mga_do_agp_dma_bootstrap(struct drm_device * dev, | |||
| 493 | dma_bs->agp_size); | 493 | dma_bs->agp_size); |
| 494 | return err; | 494 | return err; |
| 495 | } | 495 | } |
| 496 | 496 | ||
| 497 | dev_priv->agp_size = agp_size; | 497 | dev_priv->agp_size = agp_size; |
| 498 | dev_priv->agp_handle = agp_req.handle; | 498 | dev_priv->agp_handle = agp_req.handle; |
| 499 | 499 | ||
| @@ -550,7 +550,7 @@ static int mga_do_agp_dma_bootstrap(struct drm_device * dev, | |||
| 550 | { | 550 | { |
| 551 | struct drm_map_list *_entry; | 551 | struct drm_map_list *_entry; |
| 552 | unsigned long agp_token = 0; | 552 | unsigned long agp_token = 0; |
| 553 | 553 | ||
| 554 | list_for_each_entry(_entry, &dev->maplist, head) { | 554 | list_for_each_entry(_entry, &dev->maplist, head) { |
| 555 | if (_entry->map == dev->agp_buffer_map) | 555 | if (_entry->map == dev->agp_buffer_map) |
| 556 | agp_token = _entry->user_token; | 556 | agp_token = _entry->user_token; |
| @@ -964,7 +964,7 @@ static int mga_do_cleanup_dma(struct drm_device *dev, int full_cleanup) | |||
| 964 | 964 | ||
| 965 | free_req.handle = dev_priv->agp_handle; | 965 | free_req.handle = dev_priv->agp_handle; |
| 966 | drm_agp_free(dev, &free_req); | 966 | drm_agp_free(dev, &free_req); |
| 967 | 967 | ||
| 968 | dev_priv->agp_textures = NULL; | 968 | dev_priv->agp_textures = NULL; |
| 969 | dev_priv->agp_size = 0; | 969 | dev_priv->agp_size = 0; |
| 970 | dev_priv->agp_handle = 0; | 970 | dev_priv->agp_handle = 0; |
diff --git a/drivers/char/drm/mga_drv.h b/drivers/char/drm/mga_drv.h index cd94c04e31c0..44a9e6619061 100644 --- a/drivers/char/drm/mga_drv.h +++ b/drivers/char/drm/mga_drv.h | |||
| @@ -216,8 +216,8 @@ static inline u32 _MGA_READ(u32 * addr) | |||
| 216 | #define MGA_WRITE( reg, val ) DRM_WRITE32(dev_priv->mmio, (reg), (val)) | 216 | #define MGA_WRITE( reg, val ) DRM_WRITE32(dev_priv->mmio, (reg), (val)) |
| 217 | #endif | 217 | #endif |
| 218 | 218 | ||
| 219 | #define DWGREG0 0x1c00 | 219 | #define DWGREG0 0x1c00 |
| 220 | #define DWGREG0_END 0x1dff | 220 | #define DWGREG0_END 0x1dff |
| 221 | #define DWGREG1 0x2c00 | 221 | #define DWGREG1 0x2c00 |
| 222 | #define DWGREG1_END 0x2dff | 222 | #define DWGREG1_END 0x2dff |
| 223 | 223 | ||
| @@ -394,22 +394,22 @@ do { \ | |||
| 394 | #define MGA_VINTCLR (1 << 4) | 394 | #define MGA_VINTCLR (1 << 4) |
| 395 | #define MGA_VINTEN (1 << 5) | 395 | #define MGA_VINTEN (1 << 5) |
| 396 | 396 | ||
| 397 | #define MGA_ALPHACTRL 0x2c7c | 397 | #define MGA_ALPHACTRL 0x2c7c |
| 398 | #define MGA_AR0 0x1c60 | 398 | #define MGA_AR0 0x1c60 |
| 399 | #define MGA_AR1 0x1c64 | 399 | #define MGA_AR1 0x1c64 |
| 400 | #define MGA_AR2 0x1c68 | 400 | #define MGA_AR2 0x1c68 |
| 401 | #define MGA_AR3 0x1c6c | 401 | #define MGA_AR3 0x1c6c |
| 402 | #define MGA_AR4 0x1c70 | 402 | #define MGA_AR4 0x1c70 |
| 403 | #define MGA_AR5 0x1c74 | 403 | #define MGA_AR5 0x1c74 |
| 404 | #define MGA_AR6 0x1c78 | 404 | #define MGA_AR6 0x1c78 |
| 405 | 405 | ||
| 406 | #define MGA_CXBNDRY 0x1c80 | 406 | #define MGA_CXBNDRY 0x1c80 |
| 407 | #define MGA_CXLEFT 0x1ca0 | 407 | #define MGA_CXLEFT 0x1ca0 |
| 408 | #define MGA_CXRIGHT 0x1ca4 | 408 | #define MGA_CXRIGHT 0x1ca4 |
| 409 | 409 | ||
| 410 | #define MGA_DMAPAD 0x1c54 | 410 | #define MGA_DMAPAD 0x1c54 |
| 411 | #define MGA_DSTORG 0x2cb8 | 411 | #define MGA_DSTORG 0x2cb8 |
| 412 | #define MGA_DWGCTL 0x1c00 | 412 | #define MGA_DWGCTL 0x1c00 |
| 413 | # define MGA_OPCOD_MASK (15 << 0) | 413 | # define MGA_OPCOD_MASK (15 << 0) |
| 414 | # define MGA_OPCOD_TRAP (4 << 0) | 414 | # define MGA_OPCOD_TRAP (4 << 0) |
| 415 | # define MGA_OPCOD_TEXTURE_TRAP (6 << 0) | 415 | # define MGA_OPCOD_TEXTURE_TRAP (6 << 0) |
| @@ -455,27 +455,27 @@ do { \ | |||
| 455 | # define MGA_CLIPDIS (1 << 31) | 455 | # define MGA_CLIPDIS (1 << 31) |
| 456 | #define MGA_DWGSYNC 0x2c4c | 456 | #define MGA_DWGSYNC 0x2c4c |
| 457 | 457 | ||
| 458 | #define MGA_FCOL 0x1c24 | 458 | #define MGA_FCOL 0x1c24 |
| 459 | #define MGA_FIFOSTATUS 0x1e10 | 459 | #define MGA_FIFOSTATUS 0x1e10 |
| 460 | #define MGA_FOGCOL 0x1cf4 | 460 | #define MGA_FOGCOL 0x1cf4 |
| 461 | #define MGA_FXBNDRY 0x1c84 | 461 | #define MGA_FXBNDRY 0x1c84 |
| 462 | #define MGA_FXLEFT 0x1ca8 | 462 | #define MGA_FXLEFT 0x1ca8 |
| 463 | #define MGA_FXRIGHT 0x1cac | 463 | #define MGA_FXRIGHT 0x1cac |
| 464 | 464 | ||
| 465 | #define MGA_ICLEAR 0x1e18 | 465 | #define MGA_ICLEAR 0x1e18 |
| 466 | # define MGA_SOFTRAPICLR (1 << 0) | 466 | # define MGA_SOFTRAPICLR (1 << 0) |
| 467 | # define MGA_VLINEICLR (1 << 5) | 467 | # define MGA_VLINEICLR (1 << 5) |
| 468 | #define MGA_IEN 0x1e1c | 468 | #define MGA_IEN 0x1e1c |
| 469 | # define MGA_SOFTRAPIEN (1 << 0) | 469 | # define MGA_SOFTRAPIEN (1 << 0) |
| 470 | # define MGA_VLINEIEN (1 << 5) | 470 | # define MGA_VLINEIEN (1 << 5) |
| 471 | 471 | ||
| 472 | #define MGA_LEN 0x1c5c | 472 | #define MGA_LEN 0x1c5c |
| 473 | 473 | ||
| 474 | #define MGA_MACCESS 0x1c04 | 474 | #define MGA_MACCESS 0x1c04 |
| 475 | 475 | ||
| 476 | #define MGA_PITCH 0x1c8c | 476 | #define MGA_PITCH 0x1c8c |
| 477 | #define MGA_PLNWT 0x1c1c | 477 | #define MGA_PLNWT 0x1c1c |
| 478 | #define MGA_PRIMADDRESS 0x1e58 | 478 | #define MGA_PRIMADDRESS 0x1e58 |
| 479 | # define MGA_DMA_GENERAL (0 << 0) | 479 | # define MGA_DMA_GENERAL (0 << 0) |
| 480 | # define MGA_DMA_BLIT (1 << 0) | 480 | # define MGA_DMA_BLIT (1 << 0) |
| 481 | # define MGA_DMA_VECTOR (2 << 0) | 481 | # define MGA_DMA_VECTOR (2 << 0) |
| @@ -487,43 +487,43 @@ do { \ | |||
| 487 | # define MGA_PRIMPTREN0 (1 << 0) | 487 | # define MGA_PRIMPTREN0 (1 << 0) |
| 488 | # define MGA_PRIMPTREN1 (1 << 1) | 488 | # define MGA_PRIMPTREN1 (1 << 1) |
| 489 | 489 | ||
| 490 | #define MGA_RST 0x1e40 | 490 | #define MGA_RST 0x1e40 |
| 491 | # define MGA_SOFTRESET (1 << 0) | 491 | # define MGA_SOFTRESET (1 << 0) |
| 492 | # define MGA_SOFTEXTRST (1 << 1) | 492 | # define MGA_SOFTEXTRST (1 << 1) |
| 493 | 493 | ||
| 494 | #define MGA_SECADDRESS 0x2c40 | 494 | #define MGA_SECADDRESS 0x2c40 |
| 495 | #define MGA_SECEND 0x2c44 | 495 | #define MGA_SECEND 0x2c44 |
| 496 | #define MGA_SETUPADDRESS 0x2cd0 | 496 | #define MGA_SETUPADDRESS 0x2cd0 |
| 497 | #define MGA_SETUPEND 0x2cd4 | 497 | #define MGA_SETUPEND 0x2cd4 |
| 498 | #define MGA_SGN 0x1c58 | 498 | #define MGA_SGN 0x1c58 |
| 499 | #define MGA_SOFTRAP 0x2c48 | 499 | #define MGA_SOFTRAP 0x2c48 |
| 500 | #define MGA_SRCORG 0x2cb4 | 500 | #define MGA_SRCORG 0x2cb4 |
| 501 | # define MGA_SRMMAP_MASK (1 << 0) | 501 | # define MGA_SRMMAP_MASK (1 << 0) |
| 502 | # define MGA_SRCMAP_FB (0 << 0) | 502 | # define MGA_SRCMAP_FB (0 << 0) |
| 503 | # define MGA_SRCMAP_SYSMEM (1 << 0) | 503 | # define MGA_SRCMAP_SYSMEM (1 << 0) |
| 504 | # define MGA_SRCACC_MASK (1 << 1) | 504 | # define MGA_SRCACC_MASK (1 << 1) |
| 505 | # define MGA_SRCACC_PCI (0 << 1) | 505 | # define MGA_SRCACC_PCI (0 << 1) |
| 506 | # define MGA_SRCACC_AGP (1 << 1) | 506 | # define MGA_SRCACC_AGP (1 << 1) |
| 507 | #define MGA_STATUS 0x1e14 | 507 | #define MGA_STATUS 0x1e14 |
| 508 | # define MGA_SOFTRAPEN (1 << 0) | 508 | # define MGA_SOFTRAPEN (1 << 0) |
| 509 | # define MGA_VSYNCPEN (1 << 4) | 509 | # define MGA_VSYNCPEN (1 << 4) |
| 510 | # define MGA_VLINEPEN (1 << 5) | 510 | # define MGA_VLINEPEN (1 << 5) |
| 511 | # define MGA_DWGENGSTS (1 << 16) | 511 | # define MGA_DWGENGSTS (1 << 16) |
| 512 | # define MGA_ENDPRDMASTS (1 << 17) | 512 | # define MGA_ENDPRDMASTS (1 << 17) |
| 513 | #define MGA_STENCIL 0x2cc8 | 513 | #define MGA_STENCIL 0x2cc8 |
| 514 | #define MGA_STENCILCTL 0x2ccc | 514 | #define MGA_STENCILCTL 0x2ccc |
| 515 | 515 | ||
| 516 | #define MGA_TDUALSTAGE0 0x2cf8 | 516 | #define MGA_TDUALSTAGE0 0x2cf8 |
| 517 | #define MGA_TDUALSTAGE1 0x2cfc | 517 | #define MGA_TDUALSTAGE1 0x2cfc |
| 518 | #define MGA_TEXBORDERCOL 0x2c5c | 518 | #define MGA_TEXBORDERCOL 0x2c5c |
| 519 | #define MGA_TEXCTL 0x2c30 | 519 | #define MGA_TEXCTL 0x2c30 |
| 520 | #define MGA_TEXCTL2 0x2c3c | 520 | #define MGA_TEXCTL2 0x2c3c |
| 521 | # define MGA_DUALTEX (1 << 7) | 521 | # define MGA_DUALTEX (1 << 7) |
| 522 | # define MGA_G400_TC2_MAGIC (1 << 15) | 522 | # define MGA_G400_TC2_MAGIC (1 << 15) |
| 523 | # define MGA_MAP1_ENABLE (1 << 31) | 523 | # define MGA_MAP1_ENABLE (1 << 31) |
| 524 | #define MGA_TEXFILTER 0x2c58 | 524 | #define MGA_TEXFILTER 0x2c58 |
| 525 | #define MGA_TEXHEIGHT 0x2c2c | 525 | #define MGA_TEXHEIGHT 0x2c2c |
| 526 | #define MGA_TEXORG 0x2c24 | 526 | #define MGA_TEXORG 0x2c24 |
| 527 | # define MGA_TEXORGMAP_MASK (1 << 0) | 527 | # define MGA_TEXORGMAP_MASK (1 << 0) |
| 528 | # define MGA_TEXORGMAP_FB (0 << 0) | 528 | # define MGA_TEXORGMAP_FB (0 << 0) |
| 529 | # define MGA_TEXORGMAP_SYSMEM (1 << 0) | 529 | # define MGA_TEXORGMAP_SYSMEM (1 << 0) |
| @@ -534,45 +534,45 @@ do { \ | |||
| 534 | #define MGA_TEXORG2 0x2ca8 | 534 | #define MGA_TEXORG2 0x2ca8 |
| 535 | #define MGA_TEXORG3 0x2cac | 535 | #define MGA_TEXORG3 0x2cac |
| 536 | #define MGA_TEXORG4 0x2cb0 | 536 | #define MGA_TEXORG4 0x2cb0 |
| 537 | #define MGA_TEXTRANS 0x2c34 | 537 | #define MGA_TEXTRANS 0x2c34 |
| 538 | #define MGA_TEXTRANSHIGH 0x2c38 | 538 | #define MGA_TEXTRANSHIGH 0x2c38 |
| 539 | #define MGA_TEXWIDTH 0x2c28 | 539 | #define MGA_TEXWIDTH 0x2c28 |
| 540 | 540 | ||
| 541 | #define MGA_WACCEPTSEQ 0x1dd4 | 541 | #define MGA_WACCEPTSEQ 0x1dd4 |
| 542 | #define MGA_WCODEADDR 0x1e6c | 542 | #define MGA_WCODEADDR 0x1e6c |
| 543 | #define MGA_WFLAG 0x1dc4 | 543 | #define MGA_WFLAG 0x1dc4 |
| 544 | #define MGA_WFLAG1 0x1de0 | 544 | #define MGA_WFLAG1 0x1de0 |
| 545 | #define MGA_WFLAGNB 0x1e64 | 545 | #define MGA_WFLAGNB 0x1e64 |
| 546 | #define MGA_WFLAGNB1 0x1e08 | 546 | #define MGA_WFLAGNB1 0x1e08 |
| 547 | #define MGA_WGETMSB 0x1dc8 | 547 | #define MGA_WGETMSB 0x1dc8 |
| 548 | #define MGA_WIADDR 0x1dc0 | 548 | #define MGA_WIADDR 0x1dc0 |
| 549 | #define MGA_WIADDR2 0x1dd8 | 549 | #define MGA_WIADDR2 0x1dd8 |
| 550 | # define MGA_WMODE_SUSPEND (0 << 0) | 550 | # define MGA_WMODE_SUSPEND (0 << 0) |
| 551 | # define MGA_WMODE_RESUME (1 << 0) | 551 | # define MGA_WMODE_RESUME (1 << 0) |
| 552 | # define MGA_WMODE_JUMP (2 << 0) | 552 | # define MGA_WMODE_JUMP (2 << 0) |
| 553 | # define MGA_WMODE_START (3 << 0) | 553 | # define MGA_WMODE_START (3 << 0) |
| 554 | # define MGA_WAGP_ENABLE (1 << 2) | 554 | # define MGA_WAGP_ENABLE (1 << 2) |
| 555 | #define MGA_WMISC 0x1e70 | 555 | #define MGA_WMISC 0x1e70 |
| 556 | # define MGA_WUCODECACHE_ENABLE (1 << 0) | 556 | # define MGA_WUCODECACHE_ENABLE (1 << 0) |
| 557 | # define MGA_WMASTER_ENABLE (1 << 1) | 557 | # define MGA_WMASTER_ENABLE (1 << 1) |
| 558 | # define MGA_WCACHEFLUSH_ENABLE (1 << 3) | 558 | # define MGA_WCACHEFLUSH_ENABLE (1 << 3) |
| 559 | #define MGA_WVRTXSZ 0x1dcc | 559 | #define MGA_WVRTXSZ 0x1dcc |
| 560 | 560 | ||
| 561 | #define MGA_YBOT 0x1c9c | 561 | #define MGA_YBOT 0x1c9c |
| 562 | #define MGA_YDST 0x1c90 | 562 | #define MGA_YDST 0x1c90 |
| 563 | #define MGA_YDSTLEN 0x1c88 | 563 | #define MGA_YDSTLEN 0x1c88 |
| 564 | #define MGA_YDSTORG 0x1c94 | 564 | #define MGA_YDSTORG 0x1c94 |
| 565 | #define MGA_YTOP 0x1c98 | 565 | #define MGA_YTOP 0x1c98 |
| 566 | 566 | ||
| 567 | #define MGA_ZORG 0x1c0c | 567 | #define MGA_ZORG 0x1c0c |
| 568 | 568 | ||
| 569 | /* This finishes the current batch of commands | 569 | /* This finishes the current batch of commands |
| 570 | */ | 570 | */ |
| 571 | #define MGA_EXEC 0x0100 | 571 | #define MGA_EXEC 0x0100 |
| 572 | 572 | ||
| 573 | /* AGP PLL encoding (for G200 only). | 573 | /* AGP PLL encoding (for G200 only). |
| 574 | */ | 574 | */ |
| 575 | #define MGA_AGP_PLL 0x1e4c | 575 | #define MGA_AGP_PLL 0x1e4c |
| 576 | # define MGA_AGP2XPLL_DISABLE (0 << 0) | 576 | # define MGA_AGP2XPLL_DISABLE (0 << 0) |
| 577 | # define MGA_AGP2XPLL_ENABLE (1 << 0) | 577 | # define MGA_AGP2XPLL_ENABLE (1 << 0) |
| 578 | 578 | ||
diff --git a/drivers/char/drm/mga_state.c b/drivers/char/drm/mga_state.c index 5ec8b61c5d45..4cb95ecd465c 100644 --- a/drivers/char/drm/mga_state.c +++ b/drivers/char/drm/mga_state.c | |||
| @@ -150,8 +150,8 @@ static __inline__ void mga_g400_emit_tex0(drm_mga_private_t * dev_priv) | |||
| 150 | drm_mga_texture_regs_t *tex = &sarea_priv->tex_state[0]; | 150 | drm_mga_texture_regs_t *tex = &sarea_priv->tex_state[0]; |
| 151 | DMA_LOCALS; | 151 | DMA_LOCALS; |
| 152 | 152 | ||
| 153 | /* printk("mga_g400_emit_tex0 %x %x %x\n", tex->texorg, */ | 153 | /* printk("mga_g400_emit_tex0 %x %x %x\n", tex->texorg, */ |
| 154 | /* tex->texctl, tex->texctl2); */ | 154 | /* tex->texctl, tex->texctl2); */ |
| 155 | 155 | ||
| 156 | BEGIN_DMA(6); | 156 | BEGIN_DMA(6); |
| 157 | 157 | ||
| @@ -190,8 +190,8 @@ static __inline__ void mga_g400_emit_tex1(drm_mga_private_t * dev_priv) | |||
| 190 | drm_mga_texture_regs_t *tex = &sarea_priv->tex_state[1]; | 190 | drm_mga_texture_regs_t *tex = &sarea_priv->tex_state[1]; |
| 191 | DMA_LOCALS; | 191 | DMA_LOCALS; |
| 192 | 192 | ||
| 193 | /* printk("mga_g400_emit_tex1 %x %x %x\n", tex->texorg, */ | 193 | /* printk("mga_g400_emit_tex1 %x %x %x\n", tex->texorg, */ |
| 194 | /* tex->texctl, tex->texctl2); */ | 194 | /* tex->texctl, tex->texctl2); */ |
| 195 | 195 | ||
| 196 | BEGIN_DMA(5); | 196 | BEGIN_DMA(5); |
| 197 | 197 | ||
| @@ -256,7 +256,7 @@ static __inline__ void mga_g400_emit_pipe(drm_mga_private_t * dev_priv) | |||
| 256 | unsigned int pipe = sarea_priv->warp_pipe; | 256 | unsigned int pipe = sarea_priv->warp_pipe; |
| 257 | DMA_LOCALS; | 257 | DMA_LOCALS; |
| 258 | 258 | ||
| 259 | /* printk("mga_g400_emit_pipe %x\n", pipe); */ | 259 | /* printk("mga_g400_emit_pipe %x\n", pipe); */ |
| 260 | 260 | ||
| 261 | BEGIN_DMA(10); | 261 | BEGIN_DMA(10); |
| 262 | 262 | ||
diff --git a/drivers/char/drm/r128_cce.c b/drivers/char/drm/r128_cce.c index 7d550aba165e..90972cc8628e 100644 --- a/drivers/char/drm/r128_cce.c +++ b/drivers/char/drm/r128_cce.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* r128_cce.c -- ATI Rage 128 driver -*- linux-c -*- | 1 | /* r128_cce.c -- ATI Rage 128 driver -*- linux-c -*- |
| 2 | * Created: Wed Apr 5 19:24:19 2000 by kevin@precisioninsight.com | 2 | * Created: Wed Apr 5 19:24:19 2000 by kevin@precisioninsight.com |
| 3 | */ | 3 | */ |
| 4 | /* | 4 | /* |
diff --git a/drivers/char/drm/r128_drv.h b/drivers/char/drm/r128_drv.h index 5041bd8dbed8..a53082e9dcc1 100644 --- a/drivers/char/drm/r128_drv.h +++ b/drivers/char/drm/r128_drv.h | |||
| @@ -493,7 +493,7 @@ do { \ | |||
| 493 | write * sizeof(u32) ); \ | 493 | write * sizeof(u32) ); \ |
| 494 | } \ | 494 | } \ |
| 495 | if (((dev_priv->ring.tail + _nr) & tail_mask) != write) { \ | 495 | if (((dev_priv->ring.tail + _nr) & tail_mask) != write) { \ |
| 496 | DRM_ERROR( \ | 496 | DRM_ERROR( \ |
| 497 | "ADVANCE_RING(): mismatch: nr: %x write: %x line: %d\n", \ | 497 | "ADVANCE_RING(): mismatch: nr: %x write: %x line: %d\n", \ |
| 498 | ((dev_priv->ring.tail + _nr) & tail_mask), \ | 498 | ((dev_priv->ring.tail + _nr) & tail_mask), \ |
| 499 | write, __LINE__); \ | 499 | write, __LINE__); \ |
diff --git a/drivers/char/drm/r300_cmdbuf.c b/drivers/char/drm/r300_cmdbuf.c index 59b2944811c5..8cd82710f6a0 100644 --- a/drivers/char/drm/r300_cmdbuf.c +++ b/drivers/char/drm/r300_cmdbuf.c | |||
| @@ -486,7 +486,7 @@ static __inline__ int r300_emit_bitblt_multi(drm_radeon_private_t *dev_priv, | |||
| 486 | if (cmd[0] & 0x8000) { | 486 | if (cmd[0] & 0x8000) { |
| 487 | u32 offset; | 487 | u32 offset; |
| 488 | 488 | ||
| 489 | if (cmd[1] & (RADEON_GMC_SRC_PITCH_OFFSET_CNTL | 489 | if (cmd[1] & (RADEON_GMC_SRC_PITCH_OFFSET_CNTL |
| 490 | | RADEON_GMC_DST_PITCH_OFFSET_CNTL)) { | 490 | | RADEON_GMC_DST_PITCH_OFFSET_CNTL)) { |
| 491 | offset = cmd[2] << 10; | 491 | offset = cmd[2] << 10; |
| 492 | ret = !radeon_check_offset(dev_priv, offset); | 492 | ret = !radeon_check_offset(dev_priv, offset); |
| @@ -504,7 +504,7 @@ static __inline__ int r300_emit_bitblt_multi(drm_radeon_private_t *dev_priv, | |||
| 504 | DRM_ERROR("Invalid bitblt second offset is %08X\n", offset); | 504 | DRM_ERROR("Invalid bitblt second offset is %08X\n", offset); |
| 505 | return -EINVAL; | 505 | return -EINVAL; |
| 506 | } | 506 | } |
| 507 | 507 | ||
| 508 | } | 508 | } |
| 509 | } | 509 | } |
| 510 | 510 | ||
| @@ -723,54 +723,54 @@ static int r300_scratch(drm_radeon_private_t *dev_priv, | |||
| 723 | u32 *ref_age_base; | 723 | u32 *ref_age_base; |
| 724 | u32 i, buf_idx, h_pending; | 724 | u32 i, buf_idx, h_pending; |
| 725 | RING_LOCALS; | 725 | RING_LOCALS; |
| 726 | 726 | ||
| 727 | if (cmdbuf->bufsz < | 727 | if (cmdbuf->bufsz < |
| 728 | (sizeof(u64) + header.scratch.n_bufs * sizeof(buf_idx))) { | 728 | (sizeof(u64) + header.scratch.n_bufs * sizeof(buf_idx))) { |
| 729 | return -EINVAL; | 729 | return -EINVAL; |
| 730 | } | 730 | } |
| 731 | 731 | ||
| 732 | if (header.scratch.reg >= 5) { | 732 | if (header.scratch.reg >= 5) { |
| 733 | return -EINVAL; | 733 | return -EINVAL; |
| 734 | } | 734 | } |
| 735 | 735 | ||
| 736 | dev_priv->scratch_ages[header.scratch.reg]++; | 736 | dev_priv->scratch_ages[header.scratch.reg]++; |
| 737 | 737 | ||
| 738 | ref_age_base = (u32 *)(unsigned long)*((uint64_t *)cmdbuf->buf); | 738 | ref_age_base = (u32 *)(unsigned long)*((uint64_t *)cmdbuf->buf); |
| 739 | 739 | ||
| 740 | cmdbuf->buf += sizeof(u64); | 740 | cmdbuf->buf += sizeof(u64); |
| 741 | cmdbuf->bufsz -= sizeof(u64); | 741 | cmdbuf->bufsz -= sizeof(u64); |
| 742 | 742 | ||
| 743 | for (i=0; i < header.scratch.n_bufs; i++) { | 743 | for (i=0; i < header.scratch.n_bufs; i++) { |
| 744 | buf_idx = *(u32 *)cmdbuf->buf; | 744 | buf_idx = *(u32 *)cmdbuf->buf; |
| 745 | buf_idx *= 2; /* 8 bytes per buf */ | 745 | buf_idx *= 2; /* 8 bytes per buf */ |
| 746 | 746 | ||
| 747 | if (DRM_COPY_TO_USER(ref_age_base + buf_idx, &dev_priv->scratch_ages[header.scratch.reg], sizeof(u32))) { | 747 | if (DRM_COPY_TO_USER(ref_age_base + buf_idx, &dev_priv->scratch_ages[header.scratch.reg], sizeof(u32))) { |
| 748 | return -EINVAL; | 748 | return -EINVAL; |
| 749 | } | 749 | } |
| 750 | 750 | ||
| 751 | if (DRM_COPY_FROM_USER(&h_pending, ref_age_base + buf_idx + 1, sizeof(u32))) { | 751 | if (DRM_COPY_FROM_USER(&h_pending, ref_age_base + buf_idx + 1, sizeof(u32))) { |
| 752 | return -EINVAL; | 752 | return -EINVAL; |
| 753 | } | 753 | } |
| 754 | 754 | ||
| 755 | if (h_pending == 0) { | 755 | if (h_pending == 0) { |
| 756 | return -EINVAL; | 756 | return -EINVAL; |
| 757 | } | 757 | } |
| 758 | 758 | ||
| 759 | h_pending--; | 759 | h_pending--; |
| 760 | 760 | ||
| 761 | if (DRM_COPY_TO_USER(ref_age_base + buf_idx + 1, &h_pending, sizeof(u32))) { | 761 | if (DRM_COPY_TO_USER(ref_age_base + buf_idx + 1, &h_pending, sizeof(u32))) { |
| 762 | return -EINVAL; | 762 | return -EINVAL; |
| 763 | } | 763 | } |
| 764 | 764 | ||
| 765 | cmdbuf->buf += sizeof(buf_idx); | 765 | cmdbuf->buf += sizeof(buf_idx); |
| 766 | cmdbuf->bufsz -= sizeof(buf_idx); | 766 | cmdbuf->bufsz -= sizeof(buf_idx); |
| 767 | } | 767 | } |
| 768 | 768 | ||
| 769 | BEGIN_RING(2); | 769 | BEGIN_RING(2); |
| 770 | OUT_RING( CP_PACKET0( RADEON_SCRATCH_REG0 + header.scratch.reg * 4, 0 ) ); | 770 | OUT_RING( CP_PACKET0( RADEON_SCRATCH_REG0 + header.scratch.reg * 4, 0 ) ); |
| 771 | OUT_RING( dev_priv->scratch_ages[header.scratch.reg] ); | 771 | OUT_RING( dev_priv->scratch_ages[header.scratch.reg] ); |
| 772 | ADVANCE_RING(); | 772 | ADVANCE_RING(); |
| 773 | 773 | ||
| 774 | return 0; | 774 | return 0; |
| 775 | } | 775 | } |
| 776 | 776 | ||
| @@ -919,7 +919,7 @@ int r300_do_cp_cmdbuf(struct drm_device *dev, | |||
| 919 | goto cleanup; | 919 | goto cleanup; |
| 920 | } | 920 | } |
| 921 | break; | 921 | break; |
| 922 | 922 | ||
| 923 | default: | 923 | default: |
| 924 | DRM_ERROR("bad cmd_type %i at %p\n", | 924 | DRM_ERROR("bad cmd_type %i at %p\n", |
| 925 | header.header.cmd_type, | 925 | header.header.cmd_type, |
diff --git a/drivers/char/drm/r300_reg.h b/drivers/char/drm/r300_reg.h index fa194a46c1e4..8f664af9c4a4 100644 --- a/drivers/char/drm/r300_reg.h +++ b/drivers/char/drm/r300_reg.h | |||
| @@ -853,13 +853,13 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| 853 | # define R300_TX_FORMAT_W8Z8Y8X8 0xC | 853 | # define R300_TX_FORMAT_W8Z8Y8X8 0xC |
| 854 | # define R300_TX_FORMAT_W2Z10Y10X10 0xD | 854 | # define R300_TX_FORMAT_W2Z10Y10X10 0xD |
| 855 | # define R300_TX_FORMAT_W16Z16Y16X16 0xE | 855 | # define R300_TX_FORMAT_W16Z16Y16X16 0xE |
| 856 | # define R300_TX_FORMAT_DXT1 0xF | 856 | # define R300_TX_FORMAT_DXT1 0xF |
| 857 | # define R300_TX_FORMAT_DXT3 0x10 | 857 | # define R300_TX_FORMAT_DXT3 0x10 |
| 858 | # define R300_TX_FORMAT_DXT5 0x11 | 858 | # define R300_TX_FORMAT_DXT5 0x11 |
| 859 | # define R300_TX_FORMAT_D3DMFT_CxV8U8 0x12 /* no swizzle */ | 859 | # define R300_TX_FORMAT_D3DMFT_CxV8U8 0x12 /* no swizzle */ |
| 860 | # define R300_TX_FORMAT_A8R8G8B8 0x13 /* no swizzle */ | 860 | # define R300_TX_FORMAT_A8R8G8B8 0x13 /* no swizzle */ |
| 861 | # define R300_TX_FORMAT_B8G8_B8G8 0x14 /* no swizzle */ | 861 | # define R300_TX_FORMAT_B8G8_B8G8 0x14 /* no swizzle */ |
| 862 | # define R300_TX_FORMAT_G8R8_G8B8 0x15 /* no swizzle */ | 862 | # define R300_TX_FORMAT_G8R8_G8B8 0x15 /* no swizzle */ |
| 863 | /* 0x16 - some 16 bit green format.. ?? */ | 863 | /* 0x16 - some 16 bit green format.. ?? */ |
| 864 | # define R300_TX_FORMAT_UNK25 (1 << 25) /* no swizzle */ | 864 | # define R300_TX_FORMAT_UNK25 (1 << 25) /* no swizzle */ |
| 865 | # define R300_TX_FORMAT_CUBIC_MAP (1 << 26) | 865 | # define R300_TX_FORMAT_CUBIC_MAP (1 << 26) |
| @@ -867,19 +867,19 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| 867 | /* gap */ | 867 | /* gap */ |
| 868 | /* Floating point formats */ | 868 | /* Floating point formats */ |
| 869 | /* Note - hardware supports both 16 and 32 bit floating point */ | 869 | /* Note - hardware supports both 16 and 32 bit floating point */ |
| 870 | # define R300_TX_FORMAT_FL_I16 0x18 | 870 | # define R300_TX_FORMAT_FL_I16 0x18 |
| 871 | # define R300_TX_FORMAT_FL_I16A16 0x19 | 871 | # define R300_TX_FORMAT_FL_I16A16 0x19 |
| 872 | # define R300_TX_FORMAT_FL_R16G16B16A16 0x1A | 872 | # define R300_TX_FORMAT_FL_R16G16B16A16 0x1A |
| 873 | # define R300_TX_FORMAT_FL_I32 0x1B | 873 | # define R300_TX_FORMAT_FL_I32 0x1B |
| 874 | # define R300_TX_FORMAT_FL_I32A32 0x1C | 874 | # define R300_TX_FORMAT_FL_I32A32 0x1C |
| 875 | # define R300_TX_FORMAT_FL_R32G32B32A32 0x1D | 875 | # define R300_TX_FORMAT_FL_R32G32B32A32 0x1D |
| 876 | /* alpha modes, convenience mostly */ | 876 | /* alpha modes, convenience mostly */ |
| 877 | /* if you have alpha, pick constant appropriate to the | 877 | /* if you have alpha, pick constant appropriate to the |
| 878 | number of channels (1 for I8, 2 for I8A8, 4 for R8G8B8A8, etc */ | 878 | number of channels (1 for I8, 2 for I8A8, 4 for R8G8B8A8, etc */ |
| 879 | # define R300_TX_FORMAT_ALPHA_1CH 0x000 | 879 | # define R300_TX_FORMAT_ALPHA_1CH 0x000 |
| 880 | # define R300_TX_FORMAT_ALPHA_2CH 0x200 | 880 | # define R300_TX_FORMAT_ALPHA_2CH 0x200 |
| 881 | # define R300_TX_FORMAT_ALPHA_4CH 0x600 | 881 | # define R300_TX_FORMAT_ALPHA_4CH 0x600 |
| 882 | # define R300_TX_FORMAT_ALPHA_NONE 0xA00 | 882 | # define R300_TX_FORMAT_ALPHA_NONE 0xA00 |
| 883 | /* Swizzling */ | 883 | /* Swizzling */ |
| 884 | /* constants */ | 884 | /* constants */ |
| 885 | # define R300_TX_FORMAT_X 0 | 885 | # define R300_TX_FORMAT_X 0 |
| @@ -1360,11 +1360,11 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
| 1360 | # define R300_RB3D_Z_DISABLED_2 0x00000014 | 1360 | # define R300_RB3D_Z_DISABLED_2 0x00000014 |
| 1361 | # define R300_RB3D_Z_TEST 0x00000012 | 1361 | # define R300_RB3D_Z_TEST 0x00000012 |
| 1362 | # define R300_RB3D_Z_TEST_AND_WRITE 0x00000016 | 1362 | # define R300_RB3D_Z_TEST_AND_WRITE 0x00000016 |
| 1363 | # define R300_RB3D_Z_WRITE_ONLY 0x00000006 | 1363 | # define R300_RB3D_Z_WRITE_ONLY 0x00000006 |
| 1364 | 1364 | ||
| 1365 | # define R300_RB3D_Z_TEST 0x00000012 | 1365 | # define R300_RB3D_Z_TEST 0x00000012 |
| 1366 | # define R300_RB3D_Z_TEST_AND_WRITE 0x00000016 | 1366 | # define R300_RB3D_Z_TEST_AND_WRITE 0x00000016 |
| 1367 | # define R300_RB3D_Z_WRITE_ONLY 0x00000006 | 1367 | # define R300_RB3D_Z_WRITE_ONLY 0x00000006 |
| 1368 | # define R300_RB3D_STENCIL_ENABLE 0x00000001 | 1368 | # define R300_RB3D_STENCIL_ENABLE 0x00000001 |
| 1369 | 1369 | ||
| 1370 | #define R300_RB3D_ZSTENCIL_CNTL_1 0x4F04 | 1370 | #define R300_RB3D_ZSTENCIL_CNTL_1 0x4F04 |
diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c index 24fca8ec1379..df223020f0ae 100644 --- a/drivers/char/drm/radeon_cp.c +++ b/drivers/char/drm/radeon_cp.c | |||
| @@ -1127,7 +1127,7 @@ static void radeon_cp_init_ring_buffer(struct drm_device * dev, | |||
| 1127 | { | 1127 | { |
| 1128 | u32 ring_start, cur_read_ptr; | 1128 | u32 ring_start, cur_read_ptr; |
| 1129 | u32 tmp; | 1129 | u32 tmp; |
| 1130 | 1130 | ||
| 1131 | /* Initialize the memory controller. With new memory map, the fb location | 1131 | /* Initialize the memory controller. With new memory map, the fb location |
| 1132 | * is not changed, it should have been properly initialized already. Part | 1132 | * is not changed, it should have been properly initialized already. Part |
| 1133 | * of the problem is that the code below is bogus, assuming the GART is | 1133 | * of the problem is that the code below is bogus, assuming the GART is |
| @@ -1358,7 +1358,7 @@ static void radeon_set_pcigart(drm_radeon_private_t * dev_priv, int on) | |||
| 1358 | return; | 1358 | return; |
| 1359 | } | 1359 | } |
| 1360 | 1360 | ||
| 1361 | tmp = RADEON_READ(RADEON_AIC_CNTL); | 1361 | tmp = RADEON_READ(RADEON_AIC_CNTL); |
| 1362 | 1362 | ||
| 1363 | if (on) { | 1363 | if (on) { |
| 1364 | RADEON_WRITE(RADEON_AIC_CNTL, | 1364 | RADEON_WRITE(RADEON_AIC_CNTL, |
| @@ -1583,7 +1583,7 @@ static int radeon_do_init_cp(struct drm_device * dev, drm_radeon_init_t * init) | |||
| 1583 | 1583 | ||
| 1584 | dev_priv->fb_location = (RADEON_READ(RADEON_MC_FB_LOCATION) | 1584 | dev_priv->fb_location = (RADEON_READ(RADEON_MC_FB_LOCATION) |
| 1585 | & 0xffff) << 16; | 1585 | & 0xffff) << 16; |
| 1586 | dev_priv->fb_size = | 1586 | dev_priv->fb_size = |
| 1587 | ((RADEON_READ(RADEON_MC_FB_LOCATION) & 0xffff0000u) + 0x10000) | 1587 | ((RADEON_READ(RADEON_MC_FB_LOCATION) & 0xffff0000u) + 0x10000) |
| 1588 | - dev_priv->fb_location; | 1588 | - dev_priv->fb_location; |
| 1589 | 1589 | ||
| @@ -1630,7 +1630,7 @@ static int radeon_do_init_cp(struct drm_device * dev, drm_radeon_init_t * init) | |||
| 1630 | ((base + dev_priv->gart_size) & 0xfffffffful) < base) | 1630 | ((base + dev_priv->gart_size) & 0xfffffffful) < base) |
| 1631 | base = dev_priv->fb_location | 1631 | base = dev_priv->fb_location |
| 1632 | - dev_priv->gart_size; | 1632 | - dev_priv->gart_size; |
| 1633 | } | 1633 | } |
| 1634 | dev_priv->gart_vm_start = base & 0xffc00000u; | 1634 | dev_priv->gart_vm_start = base & 0xffc00000u; |
| 1635 | if (dev_priv->gart_vm_start != base) | 1635 | if (dev_priv->gart_vm_start != base) |
| 1636 | DRM_INFO("GART aligned down from 0x%08x to 0x%08x\n", | 1636 | DRM_INFO("GART aligned down from 0x%08x to 0x%08x\n", |
diff --git a/drivers/char/drm/radeon_drm.h b/drivers/char/drm/radeon_drm.h index 5a8e23f916fc..5f8d0420634d 100644 --- a/drivers/char/drm/radeon_drm.h +++ b/drivers/char/drm/radeon_drm.h | |||
| @@ -223,10 +223,10 @@ typedef union { | |||
| 223 | #define R300_CMD_CP_DELAY 5 | 223 | #define R300_CMD_CP_DELAY 5 |
| 224 | #define R300_CMD_DMA_DISCARD 6 | 224 | #define R300_CMD_DMA_DISCARD 6 |
| 225 | #define R300_CMD_WAIT 7 | 225 | #define R300_CMD_WAIT 7 |
| 226 | # define R300_WAIT_2D 0x1 | 226 | # define R300_WAIT_2D 0x1 |
| 227 | # define R300_WAIT_3D 0x2 | 227 | # define R300_WAIT_3D 0x2 |
| 228 | # define R300_WAIT_2D_CLEAN 0x3 | 228 | # define R300_WAIT_2D_CLEAN 0x3 |
| 229 | # define R300_WAIT_3D_CLEAN 0x4 | 229 | # define R300_WAIT_3D_CLEAN 0x4 |
| 230 | #define R300_CMD_SCRATCH 8 | 230 | #define R300_CMD_SCRATCH 8 |
| 231 | 231 | ||
| 232 | typedef union { | 232 | typedef union { |
| @@ -722,7 +722,7 @@ typedef struct drm_radeon_surface_free { | |||
| 722 | unsigned int address; | 722 | unsigned int address; |
| 723 | } drm_radeon_surface_free_t; | 723 | } drm_radeon_surface_free_t; |
| 724 | 724 | ||
| 725 | #define DRM_RADEON_VBLANK_CRTC1 1 | 725 | #define DRM_RADEON_VBLANK_CRTC1 1 |
| 726 | #define DRM_RADEON_VBLANK_CRTC2 2 | 726 | #define DRM_RADEON_VBLANK_CRTC2 2 |
| 727 | 727 | ||
| 728 | #endif | 728 | #endif |
diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h index bfbb60a9298c..aae030844aef 100644 --- a/drivers/char/drm/radeon_drv.h +++ b/drivers/char/drm/radeon_drv.h | |||
| @@ -429,7 +429,7 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev, | |||
| 429 | #define RADEON_PCIE_INDEX 0x0030 | 429 | #define RADEON_PCIE_INDEX 0x0030 |
| 430 | #define RADEON_PCIE_DATA 0x0034 | 430 | #define RADEON_PCIE_DATA 0x0034 |
| 431 | #define RADEON_PCIE_TX_GART_CNTL 0x10 | 431 | #define RADEON_PCIE_TX_GART_CNTL 0x10 |
| 432 | # define RADEON_PCIE_TX_GART_EN (1 << 0) | 432 | # define RADEON_PCIE_TX_GART_EN (1 << 0) |
| 433 | # define RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_PASS_THRU (0<<1) | 433 | # define RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_PASS_THRU (0<<1) |
| 434 | # define RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_CLAMP_LO (1<<1) | 434 | # define RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_CLAMP_LO (1<<1) |
| 435 | # define RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_DISCARD (3<<1) | 435 | # define RADEON_PCIE_TX_GART_UNMAPPED_ACCESS_DISCARD (3<<1) |
| @@ -439,7 +439,7 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev, | |||
| 439 | # define RADEON_PCIE_TX_GART_INVALIDATE_TLB (1<<8) | 439 | # define RADEON_PCIE_TX_GART_INVALIDATE_TLB (1<<8) |
| 440 | #define RADEON_PCIE_TX_DISCARD_RD_ADDR_LO 0x11 | 440 | #define RADEON_PCIE_TX_DISCARD_RD_ADDR_LO 0x11 |
| 441 | #define RADEON_PCIE_TX_DISCARD_RD_ADDR_HI 0x12 | 441 | #define RADEON_PCIE_TX_DISCARD_RD_ADDR_HI 0x12 |
| 442 | #define RADEON_PCIE_TX_GART_BASE 0x13 | 442 | #define RADEON_PCIE_TX_GART_BASE 0x13 |
| 443 | #define RADEON_PCIE_TX_GART_START_LO 0x14 | 443 | #define RADEON_PCIE_TX_GART_START_LO 0x14 |
| 444 | #define RADEON_PCIE_TX_GART_START_HI 0x15 | 444 | #define RADEON_PCIE_TX_GART_START_HI 0x15 |
| 445 | #define RADEON_PCIE_TX_GART_END_LO 0x16 | 445 | #define RADEON_PCIE_TX_GART_END_LO 0x16 |
| @@ -512,12 +512,12 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev, | |||
| 512 | 512 | ||
| 513 | #define RADEON_GEN_INT_STATUS 0x0044 | 513 | #define RADEON_GEN_INT_STATUS 0x0044 |
| 514 | # define RADEON_CRTC_VBLANK_STAT (1 << 0) | 514 | # define RADEON_CRTC_VBLANK_STAT (1 << 0) |
| 515 | # define RADEON_CRTC_VBLANK_STAT_ACK (1 << 0) | 515 | # define RADEON_CRTC_VBLANK_STAT_ACK (1 << 0) |
| 516 | # define RADEON_CRTC2_VBLANK_STAT (1 << 9) | 516 | # define RADEON_CRTC2_VBLANK_STAT (1 << 9) |
| 517 | # define RADEON_CRTC2_VBLANK_STAT_ACK (1 << 9) | 517 | # define RADEON_CRTC2_VBLANK_STAT_ACK (1 << 9) |
| 518 | # define RADEON_GUI_IDLE_INT_TEST_ACK (1 << 19) | 518 | # define RADEON_GUI_IDLE_INT_TEST_ACK (1 << 19) |
| 519 | # define RADEON_SW_INT_TEST (1 << 25) | 519 | # define RADEON_SW_INT_TEST (1 << 25) |
| 520 | # define RADEON_SW_INT_TEST_ACK (1 << 25) | 520 | # define RADEON_SW_INT_TEST_ACK (1 << 25) |
| 521 | # define RADEON_SW_INT_FIRE (1 << 26) | 521 | # define RADEON_SW_INT_FIRE (1 << 26) |
| 522 | 522 | ||
| 523 | #define RADEON_HOST_PATH_CNTL 0x0130 | 523 | #define RADEON_HOST_PATH_CNTL 0x0130 |
| @@ -1133,7 +1133,7 @@ do { \ | |||
| 1133 | write, dev_priv->ring.tail ); \ | 1133 | write, dev_priv->ring.tail ); \ |
| 1134 | } \ | 1134 | } \ |
| 1135 | if (((dev_priv->ring.tail + _nr) & mask) != write) { \ | 1135 | if (((dev_priv->ring.tail + _nr) & mask) != write) { \ |
| 1136 | DRM_ERROR( \ | 1136 | DRM_ERROR( \ |
| 1137 | "ADVANCE_RING(): mismatch: nr: %x write: %x line: %d\n", \ | 1137 | "ADVANCE_RING(): mismatch: nr: %x write: %x line: %d\n", \ |
| 1138 | ((dev_priv->ring.tail + _nr) & mask), \ | 1138 | ((dev_priv->ring.tail + _nr) & mask), \ |
| 1139 | write, __LINE__); \ | 1139 | write, __LINE__); \ |
diff --git a/drivers/char/drm/savage_state.c b/drivers/char/drm/savage_state.c index bf8e0e10fe21..5f6238fdf1fa 100644 --- a/drivers/char/drm/savage_state.c +++ b/drivers/char/drm/savage_state.c | |||
| @@ -512,7 +512,7 @@ static int savage_dispatch_vb_prim(drm_savage_private_t * dev_priv, | |||
| 512 | DMA_DRAW_PRIMITIVE(count, prim, skip); | 512 | DMA_DRAW_PRIMITIVE(count, prim, skip); |
| 513 | 513 | ||
| 514 | if (vb_stride == vtx_size) { | 514 | if (vb_stride == vtx_size) { |
| 515 | DMA_COPY(&vtxbuf[vb_stride * start], | 515 | DMA_COPY(&vtxbuf[vb_stride * start], |
| 516 | vtx_size * count); | 516 | vtx_size * count); |
| 517 | } else { | 517 | } else { |
| 518 | for (i = start; i < start + count; ++i) { | 518 | for (i = start; i < start + count; ++i) { |
| @@ -742,7 +742,7 @@ static int savage_dispatch_vb_idx(drm_savage_private_t * dev_priv, | |||
| 742 | while (n != 0) { | 742 | while (n != 0) { |
| 743 | /* Can emit up to 255 vertices (85 triangles) at once. */ | 743 | /* Can emit up to 255 vertices (85 triangles) at once. */ |
| 744 | unsigned int count = n > 255 ? 255 : n; | 744 | unsigned int count = n > 255 ? 255 : n; |
| 745 | 745 | ||
| 746 | /* Check indices */ | 746 | /* Check indices */ |
| 747 | for (i = 0; i < count; ++i) { | 747 | for (i = 0; i < count; ++i) { |
| 748 | if (idx[i] > vb_size / (vb_stride * 4)) { | 748 | if (idx[i] > vb_size / (vb_stride * 4)) { |
| @@ -933,7 +933,7 @@ static int savage_dispatch_draw(drm_savage_private_t * dev_priv, | |||
| 933 | /* j was check in savage_bci_cmdbuf */ | 933 | /* j was check in savage_bci_cmdbuf */ |
| 934 | ret = savage_dispatch_vb_idx(dev_priv, | 934 | ret = savage_dispatch_vb_idx(dev_priv, |
| 935 | &cmd_header, (const uint16_t *)cmdbuf, | 935 | &cmd_header, (const uint16_t *)cmdbuf, |
| 936 | (const uint32_t *)vtxbuf, vb_size, | 936 | (const uint32_t *)vtxbuf, vb_size, |
| 937 | vb_stride); | 937 | vb_stride); |
| 938 | cmdbuf += j; | 938 | cmdbuf += j; |
| 939 | break; | 939 | break; |
diff --git a/drivers/char/drm/sis_mm.c b/drivers/char/drm/sis_mm.c index a6b7ccdaf73d..42836f4104ea 100644 --- a/drivers/char/drm/sis_mm.c +++ b/drivers/char/drm/sis_mm.c | |||
| @@ -249,7 +249,7 @@ int sis_idle(struct drm_device *dev) | |||
| 249 | return 0; | 249 | return 0; |
| 250 | } | 250 | } |
| 251 | } | 251 | } |
| 252 | 252 | ||
| 253 | /* | 253 | /* |
| 254 | * Implement a device switch here if needed | 254 | * Implement a device switch here if needed |
| 255 | */ | 255 | */ |
diff --git a/drivers/char/drm/via_dmablit.c b/drivers/char/drm/via_dmablit.c index c6fd16f3cb43..33c5197b73c4 100644 --- a/drivers/char/drm/via_dmablit.c +++ b/drivers/char/drm/via_dmablit.c | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* via_dmablit.c -- PCI DMA BitBlt support for the VIA Unichrome/Pro | 1 | /* via_dmablit.c -- PCI DMA BitBlt support for the VIA Unichrome/Pro |
| 2 | * | 2 | * |
| 3 | * Copyright (C) 2005 Thomas Hellstrom, All Rights Reserved. | 3 | * Copyright (C) 2005 Thomas Hellstrom, All Rights Reserved. |
| 4 | * | 4 | * |
| 5 | * Permission is hereby granted, free of charge, to any person obtaining a | 5 | * Permission is hereby granted, free of charge, to any person obtaining a |
| @@ -16,22 +16,22 @@ | |||
| 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL | 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL |
| 19 | * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, | 19 | * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, |
| 20 | * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR | 20 | * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
| 21 | * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE | 21 | * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
| 22 | * USE OR OTHER DEALINGS IN THE SOFTWARE. | 22 | * USE OR OTHER DEALINGS IN THE SOFTWARE. |
| 23 | * | 23 | * |
| 24 | * Authors: | 24 | * Authors: |
| 25 | * Thomas Hellstrom. | 25 | * Thomas Hellstrom. |
| 26 | * Partially based on code obtained from Digeo Inc. | 26 | * Partially based on code obtained from Digeo Inc. |
| 27 | */ | 27 | */ |
| 28 | 28 | ||
| 29 | 29 | ||
| 30 | /* | 30 | /* |
| 31 | * Unmaps the DMA mappings. | 31 | * Unmaps the DMA mappings. |
| 32 | * FIXME: Is this a NoOp on x86? Also | 32 | * FIXME: Is this a NoOp on x86? Also |
| 33 | * FIXME: What happens if this one is called and a pending blit has previously done | 33 | * FIXME: What happens if this one is called and a pending blit has previously done |
| 34 | * the same DMA mappings? | 34 | * the same DMA mappings? |
| 35 | */ | 35 | */ |
| 36 | 36 | ||
| 37 | #include "drmP.h" | 37 | #include "drmP.h" |
| @@ -65,7 +65,7 @@ via_unmap_blit_from_device(struct pci_dev *pdev, drm_via_sg_info_t *vsg) | |||
| 65 | int num_desc = vsg->num_desc; | 65 | int num_desc = vsg->num_desc; |
| 66 | unsigned cur_descriptor_page = num_desc / vsg->descriptors_per_page; | 66 | unsigned cur_descriptor_page = num_desc / vsg->descriptors_per_page; |
| 67 | unsigned descriptor_this_page = num_desc % vsg->descriptors_per_page; | 67 | unsigned descriptor_this_page = num_desc % vsg->descriptors_per_page; |
| 68 | drm_via_descriptor_t *desc_ptr = vsg->desc_pages[cur_descriptor_page] + | 68 | drm_via_descriptor_t *desc_ptr = vsg->desc_pages[cur_descriptor_page] + |
| 69 | descriptor_this_page; | 69 | descriptor_this_page; |
| 70 | dma_addr_t next = vsg->chain_start; | 70 | dma_addr_t next = vsg->chain_start; |
| 71 | 71 | ||
| @@ -73,7 +73,7 @@ via_unmap_blit_from_device(struct pci_dev *pdev, drm_via_sg_info_t *vsg) | |||
| 73 | if (descriptor_this_page-- == 0) { | 73 | if (descriptor_this_page-- == 0) { |
| 74 | cur_descriptor_page--; | 74 | cur_descriptor_page--; |
| 75 | descriptor_this_page = vsg->descriptors_per_page - 1; | 75 | descriptor_this_page = vsg->descriptors_per_page - 1; |
| 76 | desc_ptr = vsg->desc_pages[cur_descriptor_page] + | 76 | desc_ptr = vsg->desc_pages[cur_descriptor_page] + |
| 77 | descriptor_this_page; | 77 | descriptor_this_page; |
| 78 | } | 78 | } |
| 79 | dma_unmap_single(&pdev->dev, next, sizeof(*desc_ptr), DMA_TO_DEVICE); | 79 | dma_unmap_single(&pdev->dev, next, sizeof(*desc_ptr), DMA_TO_DEVICE); |
| @@ -93,7 +93,7 @@ via_unmap_blit_from_device(struct pci_dev *pdev, drm_via_sg_info_t *vsg) | |||
| 93 | static void | 93 | static void |
| 94 | via_map_blit_for_device(struct pci_dev *pdev, | 94 | via_map_blit_for_device(struct pci_dev *pdev, |
| 95 | const drm_via_dmablit_t *xfer, | 95 | const drm_via_dmablit_t *xfer, |
| 96 | drm_via_sg_info_t *vsg, | 96 | drm_via_sg_info_t *vsg, |
| 97 | int mode) | 97 | int mode) |
| 98 | { | 98 | { |
| 99 | unsigned cur_descriptor_page = 0; | 99 | unsigned cur_descriptor_page = 0; |
| @@ -110,7 +110,7 @@ via_map_blit_for_device(struct pci_dev *pdev, | |||
| 110 | dma_addr_t next = 0 | VIA_DMA_DPR_EC; | 110 | dma_addr_t next = 0 | VIA_DMA_DPR_EC; |
| 111 | drm_via_descriptor_t *desc_ptr = NULL; | 111 | drm_via_descriptor_t *desc_ptr = NULL; |
| 112 | 112 | ||
| 113 | if (mode == 1) | 113 | if (mode == 1) |
| 114 | desc_ptr = vsg->desc_pages[cur_descriptor_page]; | 114 | desc_ptr = vsg->desc_pages[cur_descriptor_page]; |
| 115 | 115 | ||
| 116 | for (cur_line = 0; cur_line < xfer->num_lines; ++cur_line) { | 116 | for (cur_line = 0; cur_line < xfer->num_lines; ++cur_line) { |
| @@ -118,24 +118,24 @@ via_map_blit_for_device(struct pci_dev *pdev, | |||
| 118 | line_len = xfer->line_length; | 118 | line_len = xfer->line_length; |
| 119 | cur_fb = fb_addr; | 119 | cur_fb = fb_addr; |
| 120 | cur_mem = mem_addr; | 120 | cur_mem = mem_addr; |
| 121 | 121 | ||
| 122 | while (line_len > 0) { | 122 | while (line_len > 0) { |
| 123 | 123 | ||
| 124 | remaining_len = min(PAGE_SIZE-VIA_PGOFF(cur_mem), line_len); | 124 | remaining_len = min(PAGE_SIZE-VIA_PGOFF(cur_mem), line_len); |
| 125 | line_len -= remaining_len; | 125 | line_len -= remaining_len; |
| 126 | 126 | ||
| 127 | if (mode == 1) { | 127 | if (mode == 1) { |
| 128 | desc_ptr->mem_addr = | 128 | desc_ptr->mem_addr = |
| 129 | dma_map_page(&pdev->dev, | 129 | dma_map_page(&pdev->dev, |
| 130 | vsg->pages[VIA_PFN(cur_mem) - | 130 | vsg->pages[VIA_PFN(cur_mem) - |
| 131 | VIA_PFN(first_addr)], | 131 | VIA_PFN(first_addr)], |
| 132 | VIA_PGOFF(cur_mem), remaining_len, | 132 | VIA_PGOFF(cur_mem), remaining_len, |
| 133 | vsg->direction); | 133 | vsg->direction); |
| 134 | desc_ptr->dev_addr = cur_fb; | 134 | desc_ptr->dev_addr = cur_fb; |
| 135 | 135 | ||
| 136 | desc_ptr->size = remaining_len; | 136 | desc_ptr->size = remaining_len; |
| 137 | desc_ptr->next = (uint32_t) next; | 137 | desc_ptr->next = (uint32_t) next; |
| 138 | next = dma_map_single(&pdev->dev, desc_ptr, sizeof(*desc_ptr), | 138 | next = dma_map_single(&pdev->dev, desc_ptr, sizeof(*desc_ptr), |
| 139 | DMA_TO_DEVICE); | 139 | DMA_TO_DEVICE); |
| 140 | desc_ptr++; | 140 | desc_ptr++; |
| 141 | if (++num_descriptors_this_page >= vsg->descriptors_per_page) { | 141 | if (++num_descriptors_this_page >= vsg->descriptors_per_page) { |
| @@ -143,12 +143,12 @@ via_map_blit_for_device(struct pci_dev *pdev, | |||
| 143 | desc_ptr = vsg->desc_pages[++cur_descriptor_page]; | 143 | desc_ptr = vsg->desc_pages[++cur_descriptor_page]; |
| 144 | } | 144 | } |
| 145 | } | 145 | } |
| 146 | 146 | ||
| 147 | num_desc++; | 147 | num_desc++; |
| 148 | cur_mem += remaining_len; | 148 | cur_mem += remaining_len; |
| 149 | cur_fb += remaining_len; | 149 | cur_fb += remaining_len; |
| 150 | } | 150 | } |
| 151 | 151 | ||
| 152 | mem_addr += xfer->mem_stride; | 152 | mem_addr += xfer->mem_stride; |
| 153 | fb_addr += xfer->fb_stride; | 153 | fb_addr += xfer->fb_stride; |
| 154 | } | 154 | } |
| @@ -161,14 +161,14 @@ via_map_blit_for_device(struct pci_dev *pdev, | |||
| 161 | } | 161 | } |
| 162 | 162 | ||
| 163 | /* | 163 | /* |
| 164 | * Function that frees up all resources for a blit. It is usable even if the | 164 | * Function that frees up all resources for a blit. It is usable even if the |
| 165 | * blit info has only been partially built as long as the status enum is consistent | 165 | * blit info has only been partially built as long as the status enum is consistent |
| 166 | * with the actual status of the used resources. | 166 | * with the actual status of the used resources. |
| 167 | */ | 167 | */ |
| 168 | 168 | ||
| 169 | 169 | ||
| 170 | static void | 170 | static void |
| 171 | via_free_sg_info(struct pci_dev *pdev, drm_via_sg_info_t *vsg) | 171 | via_free_sg_info(struct pci_dev *pdev, drm_via_sg_info_t *vsg) |
| 172 | { | 172 | { |
| 173 | struct page *page; | 173 | struct page *page; |
| 174 | int i; | 174 | int i; |
| @@ -185,7 +185,7 @@ via_free_sg_info(struct pci_dev *pdev, drm_via_sg_info_t *vsg) | |||
| 185 | case dr_via_pages_locked: | 185 | case dr_via_pages_locked: |
| 186 | for (i=0; i<vsg->num_pages; ++i) { | 186 | for (i=0; i<vsg->num_pages; ++i) { |
| 187 | if ( NULL != (page = vsg->pages[i])) { | 187 | if ( NULL != (page = vsg->pages[i])) { |
| 188 | if (! PageReserved(page) && (DMA_FROM_DEVICE == vsg->direction)) | 188 | if (! PageReserved(page) && (DMA_FROM_DEVICE == vsg->direction)) |
| 189 | SetPageDirty(page); | 189 | SetPageDirty(page); |
| 190 | page_cache_release(page); | 190 | page_cache_release(page); |
| 191 | } | 191 | } |
| @@ -200,7 +200,7 @@ via_free_sg_info(struct pci_dev *pdev, drm_via_sg_info_t *vsg) | |||
| 200 | vsg->bounce_buffer = NULL; | 200 | vsg->bounce_buffer = NULL; |
| 201 | } | 201 | } |
| 202 | vsg->free_on_sequence = 0; | 202 | vsg->free_on_sequence = 0; |
| 203 | } | 203 | } |
| 204 | 204 | ||
| 205 | /* | 205 | /* |
| 206 | * Fire a blit engine. | 206 | * Fire a blit engine. |
| @@ -213,7 +213,7 @@ via_fire_dmablit(struct drm_device *dev, drm_via_sg_info_t *vsg, int engine) | |||
| 213 | 213 | ||
| 214 | VIA_WRITE(VIA_PCI_DMA_MAR0 + engine*0x10, 0); | 214 | VIA_WRITE(VIA_PCI_DMA_MAR0 + engine*0x10, 0); |
| 215 | VIA_WRITE(VIA_PCI_DMA_DAR0 + engine*0x10, 0); | 215 | VIA_WRITE(VIA_PCI_DMA_DAR0 + engine*0x10, 0); |
| 216 | VIA_WRITE(VIA_PCI_DMA_CSR0 + engine*0x04, VIA_DMA_CSR_DD | VIA_DMA_CSR_TD | | 216 | VIA_WRITE(VIA_PCI_DMA_CSR0 + engine*0x04, VIA_DMA_CSR_DD | VIA_DMA_CSR_TD | |
| 217 | VIA_DMA_CSR_DE); | 217 | VIA_DMA_CSR_DE); |
| 218 | VIA_WRITE(VIA_PCI_DMA_MR0 + engine*0x04, VIA_DMA_MR_CM | VIA_DMA_MR_TDIE); | 218 | VIA_WRITE(VIA_PCI_DMA_MR0 + engine*0x04, VIA_DMA_MR_CM | VIA_DMA_MR_TDIE); |
| 219 | VIA_WRITE(VIA_PCI_DMA_BCR0 + engine*0x10, 0); | 219 | VIA_WRITE(VIA_PCI_DMA_BCR0 + engine*0x10, 0); |
| @@ -233,9 +233,9 @@ via_lock_all_dma_pages(drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) | |||
| 233 | { | 233 | { |
| 234 | int ret; | 234 | int ret; |
| 235 | unsigned long first_pfn = VIA_PFN(xfer->mem_addr); | 235 | unsigned long first_pfn = VIA_PFN(xfer->mem_addr); |
| 236 | vsg->num_pages = VIA_PFN(xfer->mem_addr + (xfer->num_lines * xfer->mem_stride -1)) - | 236 | vsg->num_pages = VIA_PFN(xfer->mem_addr + (xfer->num_lines * xfer->mem_stride -1)) - |
| 237 | first_pfn + 1; | 237 | first_pfn + 1; |
| 238 | 238 | ||
| 239 | if (NULL == (vsg->pages = vmalloc(sizeof(struct page *) * vsg->num_pages))) | 239 | if (NULL == (vsg->pages = vmalloc(sizeof(struct page *) * vsg->num_pages))) |
| 240 | return -ENOMEM; | 240 | return -ENOMEM; |
| 241 | memset(vsg->pages, 0, sizeof(struct page *) * vsg->num_pages); | 241 | memset(vsg->pages, 0, sizeof(struct page *) * vsg->num_pages); |
| @@ -248,7 +248,7 @@ via_lock_all_dma_pages(drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) | |||
| 248 | 248 | ||
| 249 | up_read(¤t->mm->mmap_sem); | 249 | up_read(¤t->mm->mmap_sem); |
| 250 | if (ret != vsg->num_pages) { | 250 | if (ret != vsg->num_pages) { |
| 251 | if (ret < 0) | 251 | if (ret < 0) |
| 252 | return ret; | 252 | return ret; |
| 253 | vsg->state = dr_via_pages_locked; | 253 | vsg->state = dr_via_pages_locked; |
| 254 | return -EINVAL; | 254 | return -EINVAL; |
| @@ -264,21 +264,21 @@ via_lock_all_dma_pages(drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) | |||
| 264 | * quite large for some blits, and pages don't need to be contingous. | 264 | * quite large for some blits, and pages don't need to be contingous. |
| 265 | */ | 265 | */ |
| 266 | 266 | ||
| 267 | static int | 267 | static int |
| 268 | via_alloc_desc_pages(drm_via_sg_info_t *vsg) | 268 | via_alloc_desc_pages(drm_via_sg_info_t *vsg) |
| 269 | { | 269 | { |
| 270 | int i; | 270 | int i; |
| 271 | 271 | ||
| 272 | vsg->descriptors_per_page = PAGE_SIZE / sizeof( drm_via_descriptor_t); | 272 | vsg->descriptors_per_page = PAGE_SIZE / sizeof( drm_via_descriptor_t); |
| 273 | vsg->num_desc_pages = (vsg->num_desc + vsg->descriptors_per_page - 1) / | 273 | vsg->num_desc_pages = (vsg->num_desc + vsg->descriptors_per_page - 1) / |
| 274 | vsg->descriptors_per_page; | 274 | vsg->descriptors_per_page; |
| 275 | 275 | ||
| 276 | if (NULL == (vsg->desc_pages = kcalloc(vsg->num_desc_pages, sizeof(void *), GFP_KERNEL))) | 276 | if (NULL == (vsg->desc_pages = kcalloc(vsg->num_desc_pages, sizeof(void *), GFP_KERNEL))) |
| 277 | return -ENOMEM; | 277 | return -ENOMEM; |
| 278 | 278 | ||
| 279 | vsg->state = dr_via_desc_pages_alloc; | 279 | vsg->state = dr_via_desc_pages_alloc; |
| 280 | for (i=0; i<vsg->num_desc_pages; ++i) { | 280 | for (i=0; i<vsg->num_desc_pages; ++i) { |
| 281 | if (NULL == (vsg->desc_pages[i] = | 281 | if (NULL == (vsg->desc_pages[i] = |
| 282 | (drm_via_descriptor_t *) __get_free_page(GFP_KERNEL))) | 282 | (drm_via_descriptor_t *) __get_free_page(GFP_KERNEL))) |
| 283 | return -ENOMEM; | 283 | return -ENOMEM; |
| 284 | } | 284 | } |
| @@ -286,7 +286,7 @@ via_alloc_desc_pages(drm_via_sg_info_t *vsg) | |||
| 286 | vsg->num_desc); | 286 | vsg->num_desc); |
| 287 | return 0; | 287 | return 0; |
| 288 | } | 288 | } |
| 289 | 289 | ||
| 290 | static void | 290 | static void |
| 291 | via_abort_dmablit(struct drm_device *dev, int engine) | 291 | via_abort_dmablit(struct drm_device *dev, int engine) |
| 292 | { | 292 | { |
| @@ -300,7 +300,7 @@ via_dmablit_engine_off(struct drm_device *dev, int engine) | |||
| 300 | { | 300 | { |
| 301 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; | 301 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; |
| 302 | 302 | ||
| 303 | VIA_WRITE(VIA_PCI_DMA_CSR0 + engine*0x04, VIA_DMA_CSR_TD | VIA_DMA_CSR_DD); | 303 | VIA_WRITE(VIA_PCI_DMA_CSR0 + engine*0x04, VIA_DMA_CSR_TD | VIA_DMA_CSR_DD); |
| 304 | } | 304 | } |
| 305 | 305 | ||
| 306 | 306 | ||
| @@ -311,7 +311,7 @@ via_dmablit_engine_off(struct drm_device *dev, int engine) | |||
| 311 | * task. Basically the task of the interrupt handler is to submit a new blit to the engine, while | 311 | * task. Basically the task of the interrupt handler is to submit a new blit to the engine, while |
| 312 | * the workqueue task takes care of processing associated with the old blit. | 312 | * the workqueue task takes care of processing associated with the old blit. |
| 313 | */ | 313 | */ |
| 314 | 314 | ||
| 315 | void | 315 | void |
| 316 | via_dmablit_handler(struct drm_device *dev, int engine, int from_irq) | 316 | via_dmablit_handler(struct drm_device *dev, int engine, int from_irq) |
| 317 | { | 317 | { |
| @@ -331,19 +331,19 @@ via_dmablit_handler(struct drm_device *dev, int engine, int from_irq) | |||
| 331 | spin_lock_irqsave(&blitq->blit_lock, irqsave); | 331 | spin_lock_irqsave(&blitq->blit_lock, irqsave); |
| 332 | } | 332 | } |
| 333 | 333 | ||
| 334 | done_transfer = blitq->is_active && | 334 | done_transfer = blitq->is_active && |
| 335 | (( status = VIA_READ(VIA_PCI_DMA_CSR0 + engine*0x04)) & VIA_DMA_CSR_TD); | 335 | (( status = VIA_READ(VIA_PCI_DMA_CSR0 + engine*0x04)) & VIA_DMA_CSR_TD); |
| 336 | done_transfer = done_transfer || ( blitq->aborting && !(status & VIA_DMA_CSR_DE)); | 336 | done_transfer = done_transfer || ( blitq->aborting && !(status & VIA_DMA_CSR_DE)); |
| 337 | 337 | ||
| 338 | cur = blitq->cur; | 338 | cur = blitq->cur; |
| 339 | if (done_transfer) { | 339 | if (done_transfer) { |
| 340 | 340 | ||
| 341 | blitq->blits[cur]->aborted = blitq->aborting; | 341 | blitq->blits[cur]->aborted = blitq->aborting; |
| 342 | blitq->done_blit_handle++; | 342 | blitq->done_blit_handle++; |
| 343 | DRM_WAKEUP(blitq->blit_queue + cur); | 343 | DRM_WAKEUP(blitq->blit_queue + cur); |
| 344 | 344 | ||
| 345 | cur++; | 345 | cur++; |
| 346 | if (cur >= VIA_NUM_BLIT_SLOTS) | 346 | if (cur >= VIA_NUM_BLIT_SLOTS) |
| 347 | cur = 0; | 347 | cur = 0; |
| 348 | blitq->cur = cur; | 348 | blitq->cur = cur; |
| 349 | 349 | ||
| @@ -355,7 +355,7 @@ via_dmablit_handler(struct drm_device *dev, int engine, int from_irq) | |||
| 355 | 355 | ||
| 356 | blitq->is_active = 0; | 356 | blitq->is_active = 0; |
| 357 | blitq->aborting = 0; | 357 | blitq->aborting = 0; |
| 358 | schedule_work(&blitq->wq); | 358 | schedule_work(&blitq->wq); |
| 359 | 359 | ||
| 360 | } else if (blitq->is_active && time_after_eq(jiffies, blitq->end)) { | 360 | } else if (blitq->is_active && time_after_eq(jiffies, blitq->end)) { |
| 361 | 361 | ||
| @@ -367,7 +367,7 @@ via_dmablit_handler(struct drm_device *dev, int engine, int from_irq) | |||
| 367 | blitq->aborting = 1; | 367 | blitq->aborting = 1; |
| 368 | blitq->end = jiffies + DRM_HZ; | 368 | blitq->end = jiffies + DRM_HZ; |
| 369 | } | 369 | } |
| 370 | 370 | ||
| 371 | if (!blitq->is_active) { | 371 | if (!blitq->is_active) { |
| 372 | if (blitq->num_outstanding) { | 372 | if (blitq->num_outstanding) { |
| 373 | via_fire_dmablit(dev, blitq->blits[cur], engine); | 373 | via_fire_dmablit(dev, blitq->blits[cur], engine); |
| @@ -383,14 +383,14 @@ via_dmablit_handler(struct drm_device *dev, int engine, int from_irq) | |||
| 383 | } | 383 | } |
| 384 | via_dmablit_engine_off(dev, engine); | 384 | via_dmablit_engine_off(dev, engine); |
| 385 | } | 385 | } |
| 386 | } | 386 | } |
| 387 | 387 | ||
| 388 | if (from_irq) { | 388 | if (from_irq) { |
| 389 | spin_unlock(&blitq->blit_lock); | 389 | spin_unlock(&blitq->blit_lock); |
| 390 | } else { | 390 | } else { |
| 391 | spin_unlock_irqrestore(&blitq->blit_lock, irqsave); | 391 | spin_unlock_irqrestore(&blitq->blit_lock, irqsave); |
| 392 | } | 392 | } |
| 393 | } | 393 | } |
| 394 | 394 | ||
| 395 | 395 | ||
| 396 | 396 | ||
| @@ -426,13 +426,13 @@ via_dmablit_active(drm_via_blitq_t *blitq, int engine, uint32_t handle, wait_que | |||
| 426 | 426 | ||
| 427 | return active; | 427 | return active; |
| 428 | } | 428 | } |
| 429 | 429 | ||
| 430 | /* | 430 | /* |
| 431 | * Sync. Wait for at least three seconds for the blit to be performed. | 431 | * Sync. Wait for at least three seconds for the blit to be performed. |
| 432 | */ | 432 | */ |
| 433 | 433 | ||
| 434 | static int | 434 | static int |
| 435 | via_dmablit_sync(struct drm_device *dev, uint32_t handle, int engine) | 435 | via_dmablit_sync(struct drm_device *dev, uint32_t handle, int engine) |
| 436 | { | 436 | { |
| 437 | 437 | ||
| 438 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; | 438 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; |
| @@ -441,12 +441,12 @@ via_dmablit_sync(struct drm_device *dev, uint32_t handle, int engine) | |||
| 441 | int ret = 0; | 441 | int ret = 0; |
| 442 | 442 | ||
| 443 | if (via_dmablit_active(blitq, engine, handle, &queue)) { | 443 | if (via_dmablit_active(blitq, engine, handle, &queue)) { |
| 444 | DRM_WAIT_ON(ret, *queue, 3 * DRM_HZ, | 444 | DRM_WAIT_ON(ret, *queue, 3 * DRM_HZ, |
| 445 | !via_dmablit_active(blitq, engine, handle, NULL)); | 445 | !via_dmablit_active(blitq, engine, handle, NULL)); |
| 446 | } | 446 | } |
| 447 | DRM_DEBUG("DMA blit sync handle 0x%x engine %d returned %d\n", | 447 | DRM_DEBUG("DMA blit sync handle 0x%x engine %d returned %d\n", |
| 448 | handle, engine, ret); | 448 | handle, engine, ret); |
| 449 | 449 | ||
| 450 | return ret; | 450 | return ret; |
| 451 | } | 451 | } |
| 452 | 452 | ||
| @@ -468,12 +468,12 @@ via_dmablit_timer(unsigned long data) | |||
| 468 | struct drm_device *dev = blitq->dev; | 468 | struct drm_device *dev = blitq->dev; |
| 469 | int engine = (int) | 469 | int engine = (int) |
| 470 | (blitq - ((drm_via_private_t *)dev->dev_private)->blit_queues); | 470 | (blitq - ((drm_via_private_t *)dev->dev_private)->blit_queues); |
| 471 | 471 | ||
| 472 | DRM_DEBUG("Polling timer called for engine %d, jiffies %lu\n", engine, | 472 | DRM_DEBUG("Polling timer called for engine %d, jiffies %lu\n", engine, |
| 473 | (unsigned long) jiffies); | 473 | (unsigned long) jiffies); |
| 474 | 474 | ||
| 475 | via_dmablit_handler(dev, engine, 0); | 475 | via_dmablit_handler(dev, engine, 0); |
| 476 | 476 | ||
| 477 | if (!timer_pending(&blitq->poll_timer)) { | 477 | if (!timer_pending(&blitq->poll_timer)) { |
| 478 | mod_timer(&blitq->poll_timer, jiffies + 1); | 478 | mod_timer(&blitq->poll_timer, jiffies + 1); |
| 479 | 479 | ||
| @@ -497,7 +497,7 @@ via_dmablit_timer(unsigned long data) | |||
| 497 | */ | 497 | */ |
| 498 | 498 | ||
| 499 | 499 | ||
| 500 | static void | 500 | static void |
| 501 | via_dmablit_workqueue(struct work_struct *work) | 501 | via_dmablit_workqueue(struct work_struct *work) |
| 502 | { | 502 | { |
| 503 | drm_via_blitq_t *blitq = container_of(work, drm_via_blitq_t, wq); | 503 | drm_via_blitq_t *blitq = container_of(work, drm_via_blitq_t, wq); |
| @@ -505,38 +505,38 @@ via_dmablit_workqueue(struct work_struct *work) | |||
| 505 | unsigned long irqsave; | 505 | unsigned long irqsave; |
| 506 | drm_via_sg_info_t *cur_sg; | 506 | drm_via_sg_info_t *cur_sg; |
| 507 | int cur_released; | 507 | int cur_released; |
| 508 | 508 | ||
| 509 | 509 | ||
| 510 | DRM_DEBUG("Workqueue task called for blit engine %ld\n",(unsigned long) | 510 | DRM_DEBUG("Workqueue task called for blit engine %ld\n",(unsigned long) |
| 511 | (blitq - ((drm_via_private_t *)dev->dev_private)->blit_queues)); | 511 | (blitq - ((drm_via_private_t *)dev->dev_private)->blit_queues)); |
| 512 | 512 | ||
| 513 | spin_lock_irqsave(&blitq->blit_lock, irqsave); | 513 | spin_lock_irqsave(&blitq->blit_lock, irqsave); |
| 514 | 514 | ||
| 515 | while(blitq->serviced != blitq->cur) { | 515 | while(blitq->serviced != blitq->cur) { |
| 516 | 516 | ||
| 517 | cur_released = blitq->serviced++; | 517 | cur_released = blitq->serviced++; |
| 518 | 518 | ||
| 519 | DRM_DEBUG("Releasing blit slot %d\n", cur_released); | 519 | DRM_DEBUG("Releasing blit slot %d\n", cur_released); |
| 520 | 520 | ||
| 521 | if (blitq->serviced >= VIA_NUM_BLIT_SLOTS) | 521 | if (blitq->serviced >= VIA_NUM_BLIT_SLOTS) |
| 522 | blitq->serviced = 0; | 522 | blitq->serviced = 0; |
| 523 | 523 | ||
| 524 | cur_sg = blitq->blits[cur_released]; | 524 | cur_sg = blitq->blits[cur_released]; |
| 525 | blitq->num_free++; | 525 | blitq->num_free++; |
| 526 | 526 | ||
| 527 | spin_unlock_irqrestore(&blitq->blit_lock, irqsave); | 527 | spin_unlock_irqrestore(&blitq->blit_lock, irqsave); |
| 528 | 528 | ||
| 529 | DRM_WAKEUP(&blitq->busy_queue); | 529 | DRM_WAKEUP(&blitq->busy_queue); |
| 530 | 530 | ||
| 531 | via_free_sg_info(dev->pdev, cur_sg); | 531 | via_free_sg_info(dev->pdev, cur_sg); |
| 532 | kfree(cur_sg); | 532 | kfree(cur_sg); |
| 533 | 533 | ||
| 534 | spin_lock_irqsave(&blitq->blit_lock, irqsave); | 534 | spin_lock_irqsave(&blitq->blit_lock, irqsave); |
| 535 | } | 535 | } |
| 536 | 536 | ||
| 537 | spin_unlock_irqrestore(&blitq->blit_lock, irqsave); | 537 | spin_unlock_irqrestore(&blitq->blit_lock, irqsave); |
| 538 | } | 538 | } |
| 539 | 539 | ||
| 540 | 540 | ||
| 541 | /* | 541 | /* |
| 542 | * Init all blit engines. Currently we use two, but some hardware have 4. | 542 | * Init all blit engines. Currently we use two, but some hardware have 4. |
| @@ -550,8 +550,8 @@ via_init_dmablit(struct drm_device *dev) | |||
| 550 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; | 550 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; |
| 551 | drm_via_blitq_t *blitq; | 551 | drm_via_blitq_t *blitq; |
| 552 | 552 | ||
| 553 | pci_set_master(dev->pdev); | 553 | pci_set_master(dev->pdev); |
| 554 | 554 | ||
| 555 | for (i=0; i< VIA_NUM_BLIT_ENGINES; ++i) { | 555 | for (i=0; i< VIA_NUM_BLIT_ENGINES; ++i) { |
| 556 | blitq = dev_priv->blit_queues + i; | 556 | blitq = dev_priv->blit_queues + i; |
| 557 | blitq->dev = dev; | 557 | blitq->dev = dev; |
| @@ -572,20 +572,20 @@ via_init_dmablit(struct drm_device *dev) | |||
| 572 | INIT_WORK(&blitq->wq, via_dmablit_workqueue); | 572 | INIT_WORK(&blitq->wq, via_dmablit_workqueue); |
| 573 | setup_timer(&blitq->poll_timer, via_dmablit_timer, | 573 | setup_timer(&blitq->poll_timer, via_dmablit_timer, |
| 574 | (unsigned long)blitq); | 574 | (unsigned long)blitq); |
| 575 | } | 575 | } |
| 576 | } | 576 | } |
| 577 | 577 | ||
| 578 | /* | 578 | /* |
| 579 | * Build all info and do all mappings required for a blit. | 579 | * Build all info and do all mappings required for a blit. |
| 580 | */ | 580 | */ |
| 581 | 581 | ||
| 582 | 582 | ||
| 583 | static int | 583 | static int |
| 584 | via_build_sg_info(struct drm_device *dev, drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) | 584 | via_build_sg_info(struct drm_device *dev, drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) |
| 585 | { | 585 | { |
| 586 | int draw = xfer->to_fb; | 586 | int draw = xfer->to_fb; |
| 587 | int ret = 0; | 587 | int ret = 0; |
| 588 | 588 | ||
| 589 | vsg->direction = (draw) ? DMA_TO_DEVICE : DMA_FROM_DEVICE; | 589 | vsg->direction = (draw) ? DMA_TO_DEVICE : DMA_FROM_DEVICE; |
| 590 | vsg->bounce_buffer = NULL; | 590 | vsg->bounce_buffer = NULL; |
| 591 | 591 | ||
| @@ -599,7 +599,7 @@ via_build_sg_info(struct drm_device *dev, drm_via_sg_info_t *vsg, drm_via_dmabli | |||
| 599 | /* | 599 | /* |
| 600 | * Below check is a driver limitation, not a hardware one. We | 600 | * Below check is a driver limitation, not a hardware one. We |
| 601 | * don't want to lock unused pages, and don't want to incoporate the | 601 | * don't want to lock unused pages, and don't want to incoporate the |
| 602 | * extra logic of avoiding them. Make sure there are no. | 602 | * extra logic of avoiding them. Make sure there are no. |
| 603 | * (Not a big limitation anyway.) | 603 | * (Not a big limitation anyway.) |
| 604 | */ | 604 | */ |
| 605 | 605 | ||
| @@ -625,11 +625,11 @@ via_build_sg_info(struct drm_device *dev, drm_via_sg_info_t *vsg, drm_via_dmabli | |||
| 625 | if (xfer->num_lines > 2048 || (xfer->num_lines*xfer->mem_stride > (2048*2048*4))) { | 625 | if (xfer->num_lines > 2048 || (xfer->num_lines*xfer->mem_stride > (2048*2048*4))) { |
| 626 | DRM_ERROR("Too large PCI DMA bitblt.\n"); | 626 | DRM_ERROR("Too large PCI DMA bitblt.\n"); |
| 627 | return -EINVAL; | 627 | return -EINVAL; |
| 628 | } | 628 | } |
| 629 | 629 | ||
| 630 | /* | 630 | /* |
| 631 | * we allow a negative fb stride to allow flipping of images in | 631 | * we allow a negative fb stride to allow flipping of images in |
| 632 | * transfer. | 632 | * transfer. |
| 633 | */ | 633 | */ |
| 634 | 634 | ||
| 635 | if (xfer->mem_stride < xfer->line_length || | 635 | if (xfer->mem_stride < xfer->line_length || |
| @@ -653,11 +653,11 @@ via_build_sg_info(struct drm_device *dev, drm_via_sg_info_t *vsg, drm_via_dmabli | |||
| 653 | #else | 653 | #else |
| 654 | if ((((unsigned long)xfer->mem_addr & 15) || | 654 | if ((((unsigned long)xfer->mem_addr & 15) || |
| 655 | ((unsigned long)xfer->fb_addr & 3)) || | 655 | ((unsigned long)xfer->fb_addr & 3)) || |
| 656 | ((xfer->num_lines > 1) && | 656 | ((xfer->num_lines > 1) && |
| 657 | ((xfer->mem_stride & 15) || (xfer->fb_stride & 3)))) { | 657 | ((xfer->mem_stride & 15) || (xfer->fb_stride & 3)))) { |
| 658 | DRM_ERROR("Invalid DRM bitblt alignment.\n"); | 658 | DRM_ERROR("Invalid DRM bitblt alignment.\n"); |
| 659 | return -EINVAL; | 659 | return -EINVAL; |
| 660 | } | 660 | } |
| 661 | #endif | 661 | #endif |
| 662 | 662 | ||
| 663 | if (0 != (ret = via_lock_all_dma_pages(vsg, xfer))) { | 663 | if (0 != (ret = via_lock_all_dma_pages(vsg, xfer))) { |
| @@ -673,17 +673,17 @@ via_build_sg_info(struct drm_device *dev, drm_via_sg_info_t *vsg, drm_via_dmabli | |||
| 673 | return ret; | 673 | return ret; |
| 674 | } | 674 | } |
| 675 | via_map_blit_for_device(dev->pdev, xfer, vsg, 1); | 675 | via_map_blit_for_device(dev->pdev, xfer, vsg, 1); |
| 676 | 676 | ||
| 677 | return 0; | 677 | return 0; |
| 678 | } | 678 | } |
| 679 | 679 | ||
| 680 | 680 | ||
| 681 | /* | 681 | /* |
| 682 | * Reserve one free slot in the blit queue. Will wait for one second for one | 682 | * Reserve one free slot in the blit queue. Will wait for one second for one |
| 683 | * to become available. Otherwise -EBUSY is returned. | 683 | * to become available. Otherwise -EBUSY is returned. |
| 684 | */ | 684 | */ |
| 685 | 685 | ||
| 686 | static int | 686 | static int |
| 687 | via_dmablit_grab_slot(drm_via_blitq_t *blitq, int engine) | 687 | via_dmablit_grab_slot(drm_via_blitq_t *blitq, int engine) |
| 688 | { | 688 | { |
| 689 | int ret=0; | 689 | int ret=0; |
| @@ -698,10 +698,10 @@ via_dmablit_grab_slot(drm_via_blitq_t *blitq, int engine) | |||
| 698 | if (ret) { | 698 | if (ret) { |
| 699 | return (-EINTR == ret) ? -EAGAIN : ret; | 699 | return (-EINTR == ret) ? -EAGAIN : ret; |
| 700 | } | 700 | } |
| 701 | 701 | ||
| 702 | spin_lock_irqsave(&blitq->blit_lock, irqsave); | 702 | spin_lock_irqsave(&blitq->blit_lock, irqsave); |
| 703 | } | 703 | } |
| 704 | 704 | ||
| 705 | blitq->num_free--; | 705 | blitq->num_free--; |
| 706 | spin_unlock_irqrestore(&blitq->blit_lock, irqsave); | 706 | spin_unlock_irqrestore(&blitq->blit_lock, irqsave); |
| 707 | 707 | ||
| @@ -712,7 +712,7 @@ via_dmablit_grab_slot(drm_via_blitq_t *blitq, int engine) | |||
| 712 | * Hand back a free slot if we changed our mind. | 712 | * Hand back a free slot if we changed our mind. |
| 713 | */ | 713 | */ |
| 714 | 714 | ||
| 715 | static void | 715 | static void |
| 716 | via_dmablit_release_slot(drm_via_blitq_t *blitq) | 716 | via_dmablit_release_slot(drm_via_blitq_t *blitq) |
| 717 | { | 717 | { |
| 718 | unsigned long irqsave; | 718 | unsigned long irqsave; |
| @@ -728,8 +728,8 @@ via_dmablit_release_slot(drm_via_blitq_t *blitq) | |||
| 728 | */ | 728 | */ |
| 729 | 729 | ||
| 730 | 730 | ||
| 731 | static int | 731 | static int |
| 732 | via_dmablit(struct drm_device *dev, drm_via_dmablit_t *xfer) | 732 | via_dmablit(struct drm_device *dev, drm_via_dmablit_t *xfer) |
| 733 | { | 733 | { |
| 734 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; | 734 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; |
| 735 | drm_via_sg_info_t *vsg; | 735 | drm_via_sg_info_t *vsg; |
| @@ -760,15 +760,15 @@ via_dmablit(struct drm_device *dev, drm_via_dmablit_t *xfer) | |||
| 760 | spin_lock_irqsave(&blitq->blit_lock, irqsave); | 760 | spin_lock_irqsave(&blitq->blit_lock, irqsave); |
| 761 | 761 | ||
| 762 | blitq->blits[blitq->head++] = vsg; | 762 | blitq->blits[blitq->head++] = vsg; |
| 763 | if (blitq->head >= VIA_NUM_BLIT_SLOTS) | 763 | if (blitq->head >= VIA_NUM_BLIT_SLOTS) |
| 764 | blitq->head = 0; | 764 | blitq->head = 0; |
| 765 | blitq->num_outstanding++; | 765 | blitq->num_outstanding++; |
| 766 | xfer->sync.sync_handle = ++blitq->cur_blit_handle; | 766 | xfer->sync.sync_handle = ++blitq->cur_blit_handle; |
| 767 | 767 | ||
| 768 | spin_unlock_irqrestore(&blitq->blit_lock, irqsave); | 768 | spin_unlock_irqrestore(&blitq->blit_lock, irqsave); |
| 769 | xfer->sync.engine = engine; | 769 | xfer->sync.engine = engine; |
| 770 | 770 | ||
| 771 | via_dmablit_handler(dev, engine, 0); | 771 | via_dmablit_handler(dev, engine, 0); |
| 772 | 772 | ||
| 773 | return 0; | 773 | return 0; |
| 774 | } | 774 | } |
| @@ -776,7 +776,7 @@ via_dmablit(struct drm_device *dev, drm_via_dmablit_t *xfer) | |||
| 776 | /* | 776 | /* |
| 777 | * Sync on a previously submitted blit. Note that the X server use signals extensively, and | 777 | * Sync on a previously submitted blit. Note that the X server use signals extensively, and |
| 778 | * that there is a very big probability that this IOCTL will be interrupted by a signal. In that | 778 | * that there is a very big probability that this IOCTL will be interrupted by a signal. In that |
| 779 | * case it returns with -EAGAIN for the signal to be delivered. | 779 | * case it returns with -EAGAIN for the signal to be delivered. |
| 780 | * The caller should then reissue the IOCTL. This is similar to what is being done for drmGetLock(). | 780 | * The caller should then reissue the IOCTL. This is similar to what is being done for drmGetLock(). |
| 781 | */ | 781 | */ |
| 782 | 782 | ||
| @@ -786,7 +786,7 @@ via_dma_blit_sync( struct drm_device *dev, void *data, struct drm_file *file_pri | |||
| 786 | drm_via_blitsync_t *sync = data; | 786 | drm_via_blitsync_t *sync = data; |
| 787 | int err; | 787 | int err; |
| 788 | 788 | ||
| 789 | if (sync->engine >= VIA_NUM_BLIT_ENGINES) | 789 | if (sync->engine >= VIA_NUM_BLIT_ENGINES) |
| 790 | return -EINVAL; | 790 | return -EINVAL; |
| 791 | 791 | ||
| 792 | err = via_dmablit_sync(dev, sync->sync_handle, sync->engine); | 792 | err = via_dmablit_sync(dev, sync->sync_handle, sync->engine); |
| @@ -796,15 +796,15 @@ via_dma_blit_sync( struct drm_device *dev, void *data, struct drm_file *file_pri | |||
| 796 | 796 | ||
| 797 | return err; | 797 | return err; |
| 798 | } | 798 | } |
| 799 | 799 | ||
| 800 | 800 | ||
| 801 | /* | 801 | /* |
| 802 | * Queue a blit and hand back a handle to be used for sync. This IOCTL may be interrupted by a signal | 802 | * Queue a blit and hand back a handle to be used for sync. This IOCTL may be interrupted by a signal |
| 803 | * while waiting for a free slot in the blit queue. In that case it returns with -EAGAIN and should | 803 | * while waiting for a free slot in the blit queue. In that case it returns with -EAGAIN and should |
| 804 | * be reissued. See the above IOCTL code. | 804 | * be reissued. See the above IOCTL code. |
| 805 | */ | 805 | */ |
| 806 | 806 | ||
| 807 | int | 807 | int |
| 808 | via_dma_blit( struct drm_device *dev, void *data, struct drm_file *file_priv ) | 808 | via_dma_blit( struct drm_device *dev, void *data, struct drm_file *file_priv ) |
| 809 | { | 809 | { |
| 810 | drm_via_dmablit_t *xfer = data; | 810 | drm_via_dmablit_t *xfer = data; |
diff --git a/drivers/char/drm/via_dmablit.h b/drivers/char/drm/via_dmablit.h index 6f6a513d5147..7408a547a036 100644 --- a/drivers/char/drm/via_dmablit.h +++ b/drivers/char/drm/via_dmablit.h | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* via_dmablit.h -- PCI DMA BitBlt support for the VIA Unichrome/Pro | 1 | /* via_dmablit.h -- PCI DMA BitBlt support for the VIA Unichrome/Pro |
| 2 | * | 2 | * |
| 3 | * Copyright 2005 Thomas Hellstrom. | 3 | * Copyright 2005 Thomas Hellstrom. |
| 4 | * All Rights Reserved. | 4 | * All Rights Reserved. |
| 5 | * | 5 | * |
| @@ -17,12 +17,12 @@ | |||
| 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL | 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL |
| 20 | * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, | 20 | * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, |
| 21 | * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR | 21 | * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
| 22 | * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE | 22 | * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
| 23 | * USE OR OTHER DEALINGS IN THE SOFTWARE. | 23 | * USE OR OTHER DEALINGS IN THE SOFTWARE. |
| 24 | * | 24 | * |
| 25 | * Authors: | 25 | * Authors: |
| 26 | * Thomas Hellstrom. | 26 | * Thomas Hellstrom. |
| 27 | * Register info from Digeo Inc. | 27 | * Register info from Digeo Inc. |
| 28 | */ | 28 | */ |
| @@ -67,7 +67,7 @@ typedef struct _drm_via_blitq { | |||
| 67 | unsigned cur; | 67 | unsigned cur; |
| 68 | unsigned num_free; | 68 | unsigned num_free; |
| 69 | unsigned num_outstanding; | 69 | unsigned num_outstanding; |
| 70 | unsigned long end; | 70 | unsigned long end; |
| 71 | int aborting; | 71 | int aborting; |
| 72 | int is_active; | 72 | int is_active; |
| 73 | drm_via_sg_info_t *blits[VIA_NUM_BLIT_SLOTS]; | 73 | drm_via_sg_info_t *blits[VIA_NUM_BLIT_SLOTS]; |
| @@ -77,46 +77,46 @@ typedef struct _drm_via_blitq { | |||
| 77 | struct work_struct wq; | 77 | struct work_struct wq; |
| 78 | struct timer_list poll_timer; | 78 | struct timer_list poll_timer; |
| 79 | } drm_via_blitq_t; | 79 | } drm_via_blitq_t; |
| 80 | |||
| 81 | 80 | ||
| 82 | /* | 81 | |
| 82 | /* | ||
| 83 | * PCI DMA Registers | 83 | * PCI DMA Registers |
| 84 | * Channels 2 & 3 don't seem to be implemented in hardware. | 84 | * Channels 2 & 3 don't seem to be implemented in hardware. |
| 85 | */ | 85 | */ |
| 86 | 86 | ||
| 87 | #define VIA_PCI_DMA_MAR0 0xE40 /* Memory Address Register of Channel 0 */ | 87 | #define VIA_PCI_DMA_MAR0 0xE40 /* Memory Address Register of Channel 0 */ |
| 88 | #define VIA_PCI_DMA_DAR0 0xE44 /* Device Address Register of Channel 0 */ | 88 | #define VIA_PCI_DMA_DAR0 0xE44 /* Device Address Register of Channel 0 */ |
| 89 | #define VIA_PCI_DMA_BCR0 0xE48 /* Byte Count Register of Channel 0 */ | 89 | #define VIA_PCI_DMA_BCR0 0xE48 /* Byte Count Register of Channel 0 */ |
| 90 | #define VIA_PCI_DMA_DPR0 0xE4C /* Descriptor Pointer Register of Channel 0 */ | 90 | #define VIA_PCI_DMA_DPR0 0xE4C /* Descriptor Pointer Register of Channel 0 */ |
| 91 | 91 | ||
| 92 | #define VIA_PCI_DMA_MAR1 0xE50 /* Memory Address Register of Channel 1 */ | 92 | #define VIA_PCI_DMA_MAR1 0xE50 /* Memory Address Register of Channel 1 */ |
| 93 | #define VIA_PCI_DMA_DAR1 0xE54 /* Device Address Register of Channel 1 */ | 93 | #define VIA_PCI_DMA_DAR1 0xE54 /* Device Address Register of Channel 1 */ |
| 94 | #define VIA_PCI_DMA_BCR1 0xE58 /* Byte Count Register of Channel 1 */ | 94 | #define VIA_PCI_DMA_BCR1 0xE58 /* Byte Count Register of Channel 1 */ |
| 95 | #define VIA_PCI_DMA_DPR1 0xE5C /* Descriptor Pointer Register of Channel 1 */ | 95 | #define VIA_PCI_DMA_DPR1 0xE5C /* Descriptor Pointer Register of Channel 1 */ |
| 96 | 96 | ||
| 97 | #define VIA_PCI_DMA_MAR2 0xE60 /* Memory Address Register of Channel 2 */ | 97 | #define VIA_PCI_DMA_MAR2 0xE60 /* Memory Address Register of Channel 2 */ |
| 98 | #define VIA_PCI_DMA_DAR2 0xE64 /* Device Address Register of Channel 2 */ | 98 | #define VIA_PCI_DMA_DAR2 0xE64 /* Device Address Register of Channel 2 */ |
| 99 | #define VIA_PCI_DMA_BCR2 0xE68 /* Byte Count Register of Channel 2 */ | 99 | #define VIA_PCI_DMA_BCR2 0xE68 /* Byte Count Register of Channel 2 */ |
| 100 | #define VIA_PCI_DMA_DPR2 0xE6C /* Descriptor Pointer Register of Channel 2 */ | 100 | #define VIA_PCI_DMA_DPR2 0xE6C /* Descriptor Pointer Register of Channel 2 */ |
| 101 | 101 | ||
| 102 | #define VIA_PCI_DMA_MAR3 0xE70 /* Memory Address Register of Channel 3 */ | 102 | #define VIA_PCI_DMA_MAR3 0xE70 /* Memory Address Register of Channel 3 */ |
| 103 | #define VIA_PCI_DMA_DAR3 0xE74 /* Device Address Register of Channel 3 */ | 103 | #define VIA_PCI_DMA_DAR3 0xE74 /* Device Address Register of Channel 3 */ |
| 104 | #define VIA_PCI_DMA_BCR3 0xE78 /* Byte Count Register of Channel 3 */ | 104 | #define VIA_PCI_DMA_BCR3 0xE78 /* Byte Count Register of Channel 3 */ |
| 105 | #define VIA_PCI_DMA_DPR3 0xE7C /* Descriptor Pointer Register of Channel 3 */ | 105 | #define VIA_PCI_DMA_DPR3 0xE7C /* Descriptor Pointer Register of Channel 3 */ |
| 106 | 106 | ||
| 107 | #define VIA_PCI_DMA_MR0 0xE80 /* Mode Register of Channel 0 */ | 107 | #define VIA_PCI_DMA_MR0 0xE80 /* Mode Register of Channel 0 */ |
| 108 | #define VIA_PCI_DMA_MR1 0xE84 /* Mode Register of Channel 1 */ | 108 | #define VIA_PCI_DMA_MR1 0xE84 /* Mode Register of Channel 1 */ |
| 109 | #define VIA_PCI_DMA_MR2 0xE88 /* Mode Register of Channel 2 */ | 109 | #define VIA_PCI_DMA_MR2 0xE88 /* Mode Register of Channel 2 */ |
| 110 | #define VIA_PCI_DMA_MR3 0xE8C /* Mode Register of Channel 3 */ | 110 | #define VIA_PCI_DMA_MR3 0xE8C /* Mode Register of Channel 3 */ |
| 111 | 111 | ||
| 112 | #define VIA_PCI_DMA_CSR0 0xE90 /* Command/Status Register of Channel 0 */ | 112 | #define VIA_PCI_DMA_CSR0 0xE90 /* Command/Status Register of Channel 0 */ |
| 113 | #define VIA_PCI_DMA_CSR1 0xE94 /* Command/Status Register of Channel 1 */ | 113 | #define VIA_PCI_DMA_CSR1 0xE94 /* Command/Status Register of Channel 1 */ |
| 114 | #define VIA_PCI_DMA_CSR2 0xE98 /* Command/Status Register of Channel 2 */ | 114 | #define VIA_PCI_DMA_CSR2 0xE98 /* Command/Status Register of Channel 2 */ |
| 115 | #define VIA_PCI_DMA_CSR3 0xE9C /* Command/Status Register of Channel 3 */ | 115 | #define VIA_PCI_DMA_CSR3 0xE9C /* Command/Status Register of Channel 3 */ |
| 116 | 116 | ||
| 117 | #define VIA_PCI_DMA_PTR 0xEA0 /* Priority Type Register */ | 117 | #define VIA_PCI_DMA_PTR 0xEA0 /* Priority Type Register */ |
| 118 | 118 | ||
| 119 | /* Define for DMA engine */ | 119 | /* Define for DMA engine */ |
| 120 | /* DPR */ | 120 | /* DPR */ |
| 121 | #define VIA_DMA_DPR_EC (1<<1) /* end of chain */ | 121 | #define VIA_DMA_DPR_EC (1<<1) /* end of chain */ |
| 122 | #define VIA_DMA_DPR_DDIE (1<<2) /* descriptor done interrupt enable */ | 122 | #define VIA_DMA_DPR_DDIE (1<<2) /* descriptor done interrupt enable */ |
diff --git a/drivers/char/drm/via_drm.h b/drivers/char/drm/via_drm.h index 8f53c76062e9..a3b5c102b067 100644 --- a/drivers/char/drm/via_drm.h +++ b/drivers/char/drm/via_drm.h | |||
| @@ -35,7 +35,7 @@ | |||
| 35 | #include "via_drmclient.h" | 35 | #include "via_drmclient.h" |
| 36 | #endif | 36 | #endif |
| 37 | 37 | ||
| 38 | #define VIA_NR_SAREA_CLIPRECTS 8 | 38 | #define VIA_NR_SAREA_CLIPRECTS 8 |
| 39 | #define VIA_NR_XVMC_PORTS 10 | 39 | #define VIA_NR_XVMC_PORTS 10 |
| 40 | #define VIA_NR_XVMC_LOCKS 5 | 40 | #define VIA_NR_XVMC_LOCKS 5 |
| 41 | #define VIA_MAX_CACHELINE_SIZE 64 | 41 | #define VIA_MAX_CACHELINE_SIZE 64 |
| @@ -259,7 +259,7 @@ typedef struct drm_via_blitsync { | |||
| 259 | typedef struct drm_via_dmablit { | 259 | typedef struct drm_via_dmablit { |
| 260 | uint32_t num_lines; | 260 | uint32_t num_lines; |
| 261 | uint32_t line_length; | 261 | uint32_t line_length; |
| 262 | 262 | ||
| 263 | uint32_t fb_addr; | 263 | uint32_t fb_addr; |
| 264 | uint32_t fb_stride; | 264 | uint32_t fb_stride; |
| 265 | 265 | ||
diff --git a/drivers/char/drm/via_drv.c b/drivers/char/drm/via_drv.c index 2d4957ab256a..80c01cdfa37d 100644 --- a/drivers/char/drm/via_drv.c +++ b/drivers/char/drm/via_drv.c | |||
| @@ -71,7 +71,7 @@ static struct drm_driver driver = { | |||
| 71 | .name = DRIVER_NAME, | 71 | .name = DRIVER_NAME, |
| 72 | .id_table = pciidlist, | 72 | .id_table = pciidlist, |
| 73 | }, | 73 | }, |
| 74 | 74 | ||
| 75 | .name = DRIVER_NAME, | 75 | .name = DRIVER_NAME, |
| 76 | .desc = DRIVER_DESC, | 76 | .desc = DRIVER_DESC, |
| 77 | .date = DRIVER_DATE, | 77 | .date = DRIVER_DATE, |
diff --git a/drivers/char/drm/via_map.c b/drivers/char/drm/via_map.c index 10091507a0dc..f6dcaaf043fe 100644 --- a/drivers/char/drm/via_map.c +++ b/drivers/char/drm/via_map.c | |||
| @@ -121,4 +121,3 @@ int via_driver_unload(struct drm_device *dev) | |||
| 121 | 121 | ||
| 122 | return 0; | 122 | return 0; |
| 123 | } | 123 | } |
| 124 | |||
diff --git a/drivers/char/drm/via_mm.c b/drivers/char/drm/via_mm.c index 3ffbf8649833..69f655848a30 100644 --- a/drivers/char/drm/via_mm.c +++ b/drivers/char/drm/via_mm.c | |||
| @@ -113,7 +113,7 @@ void via_lastclose(struct drm_device *dev) | |||
| 113 | dev_priv->vram_initialized = 0; | 113 | dev_priv->vram_initialized = 0; |
| 114 | dev_priv->agp_initialized = 0; | 114 | dev_priv->agp_initialized = 0; |
| 115 | mutex_unlock(&dev->struct_mutex); | 115 | mutex_unlock(&dev->struct_mutex); |
| 116 | } | 116 | } |
| 117 | 117 | ||
| 118 | int via_mem_alloc(struct drm_device *dev, void *data, | 118 | int via_mem_alloc(struct drm_device *dev, void *data, |
| 119 | struct drm_file *file_priv) | 119 | struct drm_file *file_priv) |
