diff options
| -rw-r--r-- | arch/x86/kernel/apic/x2apic_uv_x.c | 8 | ||||
| -rw-r--r-- | drivers/gpu/drm/drm_bufs.c | 17 | ||||
| -rw-r--r-- | drivers/gpu/drm/drm_crtc.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/drm_vm.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 6 | ||||
| -rw-r--r-- | drivers/gpu/drm/mga/mga_drv.h | 19 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/evergreen.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/r100_track.h | 8 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/r600.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon.h | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_atombios.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_clocks.c | 8 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_combios.c | 10 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_connectors.c | 13 | ||||
| -rw-r--r-- | drivers/gpu/drm/savage/savage_bci.c | 3 | ||||
| -rw-r--r-- | drivers/pci/pci.c | 4 |
16 files changed, 59 insertions, 50 deletions
diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c index b511a011b7d..adc66c3a1fe 100644 --- a/arch/x86/kernel/apic/x2apic_uv_x.c +++ b/arch/x86/kernel/apic/x2apic_uv_x.c | |||
| @@ -632,14 +632,14 @@ late_initcall(uv_init_heartbeat); | |||
| 632 | 632 | ||
| 633 | /* Direct Legacy VGA I/O traffic to designated IOH */ | 633 | /* Direct Legacy VGA I/O traffic to designated IOH */ |
| 634 | int uv_set_vga_state(struct pci_dev *pdev, bool decode, | 634 | int uv_set_vga_state(struct pci_dev *pdev, bool decode, |
| 635 | unsigned int command_bits, bool change_bridge) | 635 | unsigned int command_bits, u32 flags) |
| 636 | { | 636 | { |
| 637 | int domain, bus, rc; | 637 | int domain, bus, rc; |
| 638 | 638 | ||
| 639 | PR_DEVEL("devfn %x decode %d cmd %x chg_brdg %d\n", | 639 | PR_DEVEL("devfn %x decode %d cmd %x flags %d\n", |
| 640 | pdev->devfn, decode, command_bits, change_bridge); | 640 | pdev->devfn, decode, command_bits, flags); |
| 641 | 641 | ||
| 642 | if (!change_bridge) | 642 | if (!(flags & PCI_VGA_STATE_CHANGE_BRIDGE)) |
| 643 | return 0; | 643 | return 0; |
| 644 | 644 | ||
| 645 | if ((command_bits & PCI_COMMAND_IO) == 0) | 645 | if ((command_bits & PCI_COMMAND_IO) == 0) |
diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c index 3e257a50bf5..61e1ef90d4e 100644 --- a/drivers/gpu/drm/drm_bufs.c +++ b/drivers/gpu/drm/drm_bufs.c | |||
| @@ -46,10 +46,11 @@ static struct drm_map_list *drm_find_matching_map(struct drm_device *dev, | |||
| 46 | list_for_each_entry(entry, &dev->maplist, head) { | 46 | list_for_each_entry(entry, &dev->maplist, head) { |
| 47 | /* | 47 | /* |
| 48 | * Because the kernel-userspace ABI is fixed at a 32-bit offset | 48 | * Because the kernel-userspace ABI is fixed at a 32-bit offset |
| 49 | * while PCI resources may live above that, we ignore the map | 49 | * while PCI resources may live above that, we only compare the |
| 50 | * offset for maps of type _DRM_FRAMEBUFFER or _DRM_REGISTERS. | 50 | * lower 32 bits of the map offset for maps of type |
| 51 | * It is assumed that each driver will have only one resource of | 51 | * _DRM_FRAMEBUFFER or _DRM_REGISTERS. |
| 52 | * each type. | 52 | * It is assumed that if a driver have more than one resource |
| 53 | * of each type, the lower 32 bits are different. | ||
| 53 | */ | 54 | */ |
| 54 | if (!entry->map || | 55 | if (!entry->map || |
| 55 | map->type != entry->map->type || | 56 | map->type != entry->map->type || |
| @@ -59,9 +60,12 @@ static struct drm_map_list *drm_find_matching_map(struct drm_device *dev, | |||
| 59 | case _DRM_SHM: | 60 | case _DRM_SHM: |
| 60 | if (map->flags != _DRM_CONTAINS_LOCK) | 61 | if (map->flags != _DRM_CONTAINS_LOCK) |
| 61 | break; | 62 | break; |
| 63 | return entry; | ||
| 62 | case _DRM_REGISTERS: | 64 | case _DRM_REGISTERS: |
| 63 | case _DRM_FRAME_BUFFER: | 65 | case _DRM_FRAME_BUFFER: |
| 64 | return entry; | 66 | if ((entry->map->offset & 0xffffffff) == |
| 67 | (map->offset & 0xffffffff)) | ||
| 68 | return entry; | ||
| 65 | default: /* Make gcc happy */ | 69 | default: /* Make gcc happy */ |
| 66 | ; | 70 | ; |
| 67 | } | 71 | } |
| @@ -183,9 +187,6 @@ static int drm_addmap_core(struct drm_device * dev, resource_size_t offset, | |||
| 183 | return -EINVAL; | 187 | return -EINVAL; |
| 184 | } | 188 | } |
| 185 | #endif | 189 | #endif |
| 186 | #ifdef __alpha__ | ||
| 187 | map->offset += dev->hose->mem_space->start; | ||
| 188 | #endif | ||
| 189 | /* Some drivers preinitialize some maps, without the X Server | 190 | /* Some drivers preinitialize some maps, without the X Server |
| 190 | * needing to be aware of it. Therefore, we just return success | 191 | * needing to be aware of it. Therefore, we just return success |
| 191 | * when the server tries to create a duplicate map. | 192 | * when the server tries to create a duplicate map. |
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 872747c5a54..21058e6ad2b 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c | |||
| @@ -1113,7 +1113,7 @@ int drm_mode_getresources(struct drm_device *dev, void *data, | |||
| 1113 | if (card_res->count_fbs >= fb_count) { | 1113 | if (card_res->count_fbs >= fb_count) { |
| 1114 | copied = 0; | 1114 | copied = 0; |
| 1115 | fb_id = (uint32_t __user *)(unsigned long)card_res->fb_id_ptr; | 1115 | fb_id = (uint32_t __user *)(unsigned long)card_res->fb_id_ptr; |
| 1116 | list_for_each_entry(fb, &file_priv->fbs, head) { | 1116 | list_for_each_entry(fb, &file_priv->fbs, filp_head) { |
| 1117 | if (put_user(fb->base.id, fb_id + copied)) { | 1117 | if (put_user(fb->base.id, fb_id + copied)) { |
| 1118 | ret = -EFAULT; | 1118 | ret = -EFAULT; |
| 1119 | goto out; | 1119 | goto out; |
diff --git a/drivers/gpu/drm/drm_vm.c b/drivers/gpu/drm/drm_vm.c index 2c3fcbdfd8f..5db96d45fc7 100644 --- a/drivers/gpu/drm/drm_vm.c +++ b/drivers/gpu/drm/drm_vm.c | |||
| @@ -526,7 +526,7 @@ static int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma) | |||
| 526 | static resource_size_t drm_core_get_reg_ofs(struct drm_device *dev) | 526 | static resource_size_t drm_core_get_reg_ofs(struct drm_device *dev) |
| 527 | { | 527 | { |
| 528 | #ifdef __alpha__ | 528 | #ifdef __alpha__ |
| 529 | return dev->hose->dense_mem_base - dev->hose->mem_space->start; | 529 | return dev->hose->dense_mem_base; |
| 530 | #else | 530 | #else |
| 531 | return 0; | 531 | return 0; |
| 532 | #endif | 532 | #endif |
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 12d32579b95..94c84d74410 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
| @@ -465,8 +465,10 @@ i915_gem_shmem_pread_slow(struct drm_device *dev, | |||
| 465 | 465 | ||
| 466 | page = read_cache_page_gfp(mapping, offset >> PAGE_SHIFT, | 466 | page = read_cache_page_gfp(mapping, offset >> PAGE_SHIFT, |
| 467 | GFP_HIGHUSER | __GFP_RECLAIMABLE); | 467 | GFP_HIGHUSER | __GFP_RECLAIMABLE); |
| 468 | if (IS_ERR(page)) | 468 | if (IS_ERR(page)) { |
| 469 | return PTR_ERR(page); | 469 | ret = PTR_ERR(page); |
| 470 | goto out; | ||
| 471 | } | ||
| 470 | 472 | ||
| 471 | if (do_bit17_swizzling) { | 473 | if (do_bit17_swizzling) { |
| 472 | slow_shmem_bit17_copy(page, | 474 | slow_shmem_bit17_copy(page, |
diff --git a/drivers/gpu/drm/mga/mga_drv.h b/drivers/gpu/drm/mga/mga_drv.h index 1084fa4d261..54558a01969 100644 --- a/drivers/gpu/drm/mga/mga_drv.h +++ b/drivers/gpu/drm/mga/mga_drv.h | |||
| @@ -195,29 +195,10 @@ extern long mga_compat_ioctl(struct file *filp, unsigned int cmd, | |||
| 195 | 195 | ||
| 196 | #define mga_flush_write_combine() DRM_WRITEMEMORYBARRIER() | 196 | #define mga_flush_write_combine() DRM_WRITEMEMORYBARRIER() |
| 197 | 197 | ||
| 198 | #if defined(__linux__) && defined(__alpha__) | ||
| 199 | #define MGA_BASE(reg) ((unsigned long)(dev_priv->mmio->handle)) | ||
| 200 | #define MGA_ADDR(reg) (MGA_BASE(reg) + reg) | ||
| 201 | |||
| 202 | #define MGA_DEREF(reg) (*(volatile u32 *)MGA_ADDR(reg)) | ||
| 203 | #define MGA_DEREF8(reg) (*(volatile u8 *)MGA_ADDR(reg)) | ||
| 204 | |||
| 205 | #define MGA_READ(reg) (_MGA_READ((u32 *)MGA_ADDR(reg))) | ||
| 206 | #define MGA_READ8(reg) (_MGA_READ((u8 *)MGA_ADDR(reg))) | ||
| 207 | #define MGA_WRITE(reg, val) do { DRM_WRITEMEMORYBARRIER(); MGA_DEREF(reg) = val; } while (0) | ||
| 208 | #define MGA_WRITE8(reg, val) do { DRM_WRITEMEMORYBARRIER(); MGA_DEREF8(reg) = val; } while (0) | ||
| 209 | |||
| 210 | static inline u32 _MGA_READ(u32 *addr) | ||
| 211 | { | ||
| 212 | DRM_MEMORYBARRIER(); | ||
| 213 | return *(volatile u32 *)addr; | ||
| 214 | } | ||
| 215 | #else | ||
| 216 | #define MGA_READ8(reg) DRM_READ8(dev_priv->mmio, (reg)) | 198 | #define MGA_READ8(reg) DRM_READ8(dev_priv->mmio, (reg)) |
| 217 | #define MGA_READ(reg) DRM_READ32(dev_priv->mmio, (reg)) | 199 | #define MGA_READ(reg) DRM_READ32(dev_priv->mmio, (reg)) |
| 218 | #define MGA_WRITE8(reg, val) DRM_WRITE8(dev_priv->mmio, (reg), (val)) | 200 | #define MGA_WRITE8(reg, val) DRM_WRITE8(dev_priv->mmio, (reg), (val)) |
| 219 | #define MGA_WRITE(reg, val) DRM_WRITE32(dev_priv->mmio, (reg), (val)) | 201 | #define MGA_WRITE(reg, val) DRM_WRITE32(dev_priv->mmio, (reg), (val)) |
| 220 | #endif | ||
| 221 | 202 | ||
| 222 | #define DWGREG0 0x1c00 | 203 | #define DWGREG0 0x1c00 |
| 223 | #define DWGREG0_END 0x1dff | 204 | #define DWGREG0_END 0x1dff |
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 98ea597bc76..86157b172c8 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c | |||
| @@ -2944,7 +2944,7 @@ restart_ih: | |||
| 2944 | radeon_fence_process(rdev); | 2944 | radeon_fence_process(rdev); |
| 2945 | break; | 2945 | break; |
| 2946 | case 233: /* GUI IDLE */ | 2946 | case 233: /* GUI IDLE */ |
| 2947 | DRM_DEBUG("IH: CP EOP\n"); | 2947 | DRM_DEBUG("IH: GUI idle\n"); |
| 2948 | rdev->pm.gui_idle = true; | 2948 | rdev->pm.gui_idle = true; |
| 2949 | wake_up(&rdev->irq.idle_queue); | 2949 | wake_up(&rdev->irq.idle_queue); |
| 2950 | break; | 2950 | break; |
diff --git a/drivers/gpu/drm/radeon/r100_track.h b/drivers/gpu/drm/radeon/r100_track.h index 2fef9de7f36..686f9dc5d4b 100644 --- a/drivers/gpu/drm/radeon/r100_track.h +++ b/drivers/gpu/drm/radeon/r100_track.h | |||
| @@ -63,7 +63,7 @@ struct r100_cs_track { | |||
| 63 | unsigned num_arrays; | 63 | unsigned num_arrays; |
| 64 | unsigned max_indx; | 64 | unsigned max_indx; |
| 65 | unsigned color_channel_mask; | 65 | unsigned color_channel_mask; |
| 66 | struct r100_cs_track_array arrays[11]; | 66 | struct r100_cs_track_array arrays[16]; |
| 67 | struct r100_cs_track_cb cb[R300_MAX_CB]; | 67 | struct r100_cs_track_cb cb[R300_MAX_CB]; |
| 68 | struct r100_cs_track_cb zb; | 68 | struct r100_cs_track_cb zb; |
| 69 | struct r100_ | ||
