diff options
-rw-r--r-- | drivers/gpu/drm/i915/i915_debugfs.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_dma.c | 12 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 21 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_lvds.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_ringbuffer.h | 22 |
8 files changed, 35 insertions, 36 deletions
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 3601466c5502..c31e818f8b08 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c | |||
@@ -544,11 +544,11 @@ static int i915_hws_info(struct seq_file *m, void *data) | |||
544 | struct drm_device *dev = node->minor->dev; | 544 | struct drm_device *dev = node->minor->dev; |
545 | drm_i915_private_t *dev_priv = dev->dev_private; | 545 | drm_i915_private_t *dev_priv = dev->dev_private; |
546 | struct intel_ring_buffer *ring; | 546 | struct intel_ring_buffer *ring; |
547 | volatile u32 *hws; | 547 | const volatile u32 __iomem *hws; |
548 | int i; | 548 | int i; |
549 | 549 | ||
550 | ring = &dev_priv->ring[(uintptr_t)node->info_ent->data]; | 550 | ring = &dev_priv->ring[(uintptr_t)node->info_ent->data]; |
551 | hws = (volatile u32 *)ring->status_page.page_addr; | 551 | hws = (volatile u32 __iomem *)ring->status_page.page_addr; |
552 | if (hws == NULL) | 552 | if (hws == NULL) |
553 | return 0; | 553 | return 0; |
554 | 554 | ||
@@ -615,7 +615,7 @@ static int i915_ringbuffer_data(struct seq_file *m, void *data) | |||
615 | if (!ring->obj) { | 615 | if (!ring->obj) { |
616 | seq_printf(m, "No ringbuffer setup\n"); | 616 | seq_printf(m, "No ringbuffer setup\n"); |
617 | } else { | 617 | } else { |
618 | u8 *virt = ring->virtual_start; | 618 | const u8 __iomem *virt = ring->virtual_start; |
619 | uint32_t off; | 619 | uint32_t off; |
620 | 620 | ||
621 | for (off = 0; off < ring->size; off += 4) { | 621 | for (off = 0; off < ring->size; off += 4) { |
@@ -1259,7 +1259,7 @@ static int i915_wedged_create(struct dentry *root, struct drm_minor *minor) | |||
1259 | } | 1259 | } |
1260 | 1260 | ||
1261 | static struct drm_info_list i915_debugfs_list[] = { | 1261 | static struct drm_info_list i915_debugfs_list[] = { |
1262 | {"i915_capabilities", i915_capabilities, 0, 0}, | 1262 | {"i915_capabilities", i915_capabilities, 0}, |
1263 | {"i915_gem_objects", i915_gem_object_info, 0}, | 1263 | {"i915_gem_objects", i915_gem_object_info, 0}, |
1264 | {"i915_gem_gtt", i915_gem_gtt_info, 0}, | 1264 | {"i915_gem_gtt", i915_gem_gtt_info, 0}, |
1265 | {"i915_gem_active", i915_gem_object_list_info, 0, (void *) ACTIVE_LIST}, | 1265 | {"i915_gem_active", i915_gem_object_list_info, 0, (void *) ACTIVE_LIST}, |
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 844f3c972b04..76f2df7b712d 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c | |||
@@ -60,10 +60,11 @@ static int i915_init_phys_hws(struct drm_device *dev) | |||
60 | DRM_ERROR("Can not allocate hardware status page\n"); | 60 | DRM_ERROR("Can not allocate hardware status page\n"); |
61 | return -ENOMEM; | 61 | return -ENOMEM; |
62 | } | 62 | } |
63 | ring->status_page.page_addr = dev_priv->status_page_dmah->vaddr; | 63 | ring->status_page.page_addr = |
64 | (void __force __iomem *)dev_priv->status_page_dmah->vaddr; | ||
64 | dev_priv->dma_status_page = dev_priv->status_page_dmah->busaddr; | 65 | dev_priv->dma_status_page = dev_priv->status_page_dmah->busaddr; |
65 | 66 | ||
66 | memset(ring->status_page.page_addr, 0, PAGE_SIZE); | 67 | memset_io(ring->status_page.page_addr, 0, PAGE_SIZE); |
67 | 68 | ||
68 | if (INTEL_INFO(dev)->gen >= 4) | 69 | if (INTEL_INFO(dev)->gen >= 4) |
69 | dev_priv->dma_status_page |= (dev_priv->dma_status_page >> 28) & | 70 | dev_priv->dma_status_page |= (dev_priv->dma_status_page >> 28) & |
@@ -188,7 +189,7 @@ static int i915_initialize(struct drm_device * dev, drm_i915_init_t * init) | |||
188 | } | 189 | } |
189 | } | 190 | } |
190 | 191 | ||
191 | ring->virtual_start = ring->map.handle; | 192 | ring->virtual_start = (void __force __iomem *)ring->map.handle; |
192 | 193 | ||
193 | dev_priv->cpp = init->cpp; | 194 | dev_priv->cpp = init->cpp; |
194 | dev_priv->back_offset = init->back_offset; | 195 | dev_priv->back_offset = init->back_offset; |
@@ -870,8 +871,9 @@ static int i915_set_status_page(struct drm_device *dev, void *data, | |||
870 | " G33 hw status page\n"); | 871 | " G33 hw status page\n"); |
871 | return -ENOMEM; | 872 | return -ENOMEM; |
872 | } | 873 | } |
873 | ring->status_page.page_addr = dev_priv->hws_map.handle; | 874 | ring->status_page.page_addr = |
874 | memset(ring->status_page.page_addr, 0, PAGE_SIZE); | 875 | (void __force __iomem *)dev_priv->hws_map.handle; |
876 | memset_io(ring->status_page.page_addr, 0, PAGE_SIZE); | ||
875 | I915_WRITE(HWS_PGA, ring->status_page.gfx_addr); | 877 | I915_WRITE(HWS_PGA, ring->status_page.gfx_addr); |
876 | 878 | ||
877 | DRM_DEBUG_DRIVER("load hws HWS_PGA with gfx mem 0x%x\n", | 879 | DRM_DEBUG_DRIVER("load hws HWS_PGA with gfx mem 0x%x\n", |
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 72fea2bcfc4f..2d31f5fd08f5 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
@@ -52,7 +52,7 @@ module_param_named(lvds_downclock, i915_lvds_downclock, int, 0400); | |||
52 | unsigned int i915_panel_use_ssc = 1; | 52 | unsigned int i915_panel_use_ssc = 1; |
53 | module_param_named(lvds_use_ssc, i915_panel_use_ssc, int, 0600); | 53 | module_param_named(lvds_use_ssc, i915_panel_use_ssc, int, 0600); |
54 | 54 | ||
55 | bool i915_try_reset = true; | 55 | static bool i915_try_reset = true; |
56 | module_param_named(reset, i915_try_reset, bool, 0600); | 56 | module_param_named(reset, i915_try_reset, bool, 0600); |
57 | 57 | ||
58 | static struct drm_driver driver; | 58 | static struct drm_driver driver; |
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 9b9a771110a4..eaec56ef12b6 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -1392,25 +1392,4 @@ i915_write(struct drm_i915_private *dev_priv, u32 reg, u64 val, int len) | |||
1392 | } | 1392 | } |
1393 | } | 1393 | } |
1394 | 1394 | ||
1395 | /** | ||
1396 | * Reads a dword out of the status page, which is written to from the command | ||
1397 | * queue by automatic updates, MI_REPORT_HEAD, MI_STORE_DATA_INDEX, or | ||
1398 | * MI_STORE_DATA_IMM. | ||
1399 | * | ||
1400 | * The following dwords have a reserved meaning: | ||
1401 | * 0x00: ISR copy, updated when an ISR bit not set in the HWSTAM changes. | ||
1402 | * 0x04: ring 0 head pointer | ||
1403 | * 0x05: ring 1 head pointer (915-class) | ||
1404 | * 0x06: ring 2 head pointer (915-class) | ||
1405 | * 0x10-0x1b: Context status DWords (GM45) | ||
1406 | * 0x1f: Last written status offset. (GM45) | ||
1407 | * | ||
1408 | * The area from dword 0x20 to 0x3ff is available for driver usage. | ||
1409 | */ | ||
1410 | #define READ_HWSP(dev_priv, reg) (((volatile u32 *)\ | ||
1411 | (LP_RING(dev_priv)->status_page.page_addr))[reg]) | ||
1412 | #define READ_BREADCRUMB(dev_priv) READ_HWSP(dev_priv, I915_BREADCRUMB_INDEX) | ||
1413 | #define I915_GEM_HWS_INDEX 0x20 | ||
1414 | #define I915_BREADCRUMB_INDEX 0x21 | ||
1415 | |||
1416 | #endif | 1395 | #endif |
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index dcfdf4151b6d..94b80acfe6ab 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c | |||
@@ -690,8 +690,6 @@ i915_gem_execbuffer_relocate_slow(struct drm_device *dev, | |||
690 | /* reacquire the objects */ | 690 | /* reacquire the objects */ |
691 | eb_reset(eb); | 691 | eb_reset(eb); |
692 | for (i = 0; i < count; i++) { | 692 | for (i = 0; i < count; i++) { |
693 | struct drm_i915_gem_object *obj; | ||
694 | |||
695 | obj = to_intel_bo(drm_gem_object_lookup(dev, file, | 693 | obj = to_intel_bo(drm_gem_object_lookup(dev, file, |
696 | exec[i].handle)); | 694 | exec[i].handle)); |
697 | if (obj == NULL) { | 695 | if (obj == NULL) { |
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index fe8454a48eab..cb9d547aa42b 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -2327,7 +2327,7 @@ static void ironlake_fdi_link_train(struct drm_crtc *crtc) | |||
2327 | 2327 | ||
2328 | } | 2328 | } |
2329 | 2329 | ||
2330 | static const int const snb_b_fdi_train_param [] = { | 2330 | static const int snb_b_fdi_train_param [] = { |
2331 | FDI_LINK_TRAIN_400MV_0DB_SNB_B, | 2331 | FDI_LINK_TRAIN_400MV_0DB_SNB_B, |
2332 | FDI_LINK_TRAIN_400MV_6DB_SNB_B, | 2332 | FDI_LINK_TRAIN_400MV_6DB_SNB_B, |
2333 | FDI_LINK_TRAIN_600MV_3_5DB_SNB_B, | 2333 | FDI_LINK_TRAIN_600MV_3_5DB_SNB_B, |
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c index fc6a0a9297c7..3eec52a0b8e6 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c | |||
@@ -503,7 +503,7 @@ static int intel_lvds_get_modes(struct drm_connector *connector) | |||
503 | return drm_add_edid_modes(connector, intel_lvds->edid); | 503 | return drm_add_edid_modes(connector, intel_lvds->edid); |
504 | 504 | ||
505 | mode = drm_mode_duplicate(dev, intel_lvds->fixed_mode); | 505 | mode = drm_mode_duplicate(dev, intel_lvds->fixed_mode); |
506 | if (mode == 0) | 506 | if (mode == NULL) |
507 | return 0; | 507 | return 0; |
508 | 508 | ||
509 | drm_mode_probed_add(connector, mode); | 509 | drm_mode_probed_add(connector, mode); |
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h index be9087e4c9be..d5911aa06597 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.h +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h | |||
@@ -43,7 +43,7 @@ struct intel_ring_buffer { | |||
43 | RING_BLT = 0x4, | 43 | RING_BLT = 0x4, |
44 | } id; | 44 | } id; |
45 | u32 mmio_base; | 45 | u32 mmio_base; |
46 | void *virtual_start; | 46 | void __iomem *virtual_start; |
47 | struct drm_device *dev; | 47 | struct drm_device *dev; |
48 | struct drm_i915_gem_object *obj; | 48 | struct drm_i915_gem_object *obj; |
49 | 49 | ||
@@ -142,6 +142,26 @@ intel_read_status_page(struct intel_ring_buffer *ring, | |||
142 | return ioread32(ring->status_page.page_addr + reg); | 142 | return ioread32(ring->status_page.page_addr + reg); |
143 | } | 143 | } |
144 | 144 | ||
145 | /** | ||
146 | * Reads a dword out of the status page, which is written to from the command | ||
147 | * queue by automatic updates, MI_REPORT_HEAD, MI_STORE_DATA_INDEX, or | ||
148 | * MI_STORE_DATA_IMM. | ||
149 | * | ||
150 | * The following dwords have a reserved meaning: | ||
151 | * 0x00: ISR copy, updated when an ISR bit not set in the HWSTAM changes. | ||
152 | * 0x04: ring 0 head pointer | ||
153 | * 0x05: ring 1 head pointer (915-class) | ||
154 | * 0x06: ring 2 head pointer (915-class) | ||
155 | * 0x10-0x1b: Context status DWords (GM45) | ||
156 | * 0x1f: Last written status offset. (GM45) | ||
157 | * | ||
158 | * The area from dword 0x20 to 0x3ff is available for driver usage. | ||
159 | */ | ||
160 | #define READ_HWSP(dev_priv, reg) intel_read_status_page(LP_RING(dev_priv), reg) | ||
161 | #define READ_BREADCRUMB(dev_priv) READ_HWSP(dev_priv, I915_BREADCRUMB_INDEX) | ||
162 | #define I915_GEM_HWS_INDEX 0x20 | ||
163 | #define I915_BREADCRUMB_INDEX 0x21 | ||
164 | |||
145 | void intel_cleanup_ring_buffer(struct intel_ring_buffer *ring); | 165 | void intel_cleanup_ring_buffer(struct intel_ring_buffer *ring); |
146 | int __must_check intel_wait_ring_buffer(struct intel_ring_buffer *ring, int n); | 166 | int __must_check intel_wait_ring_buffer(struct intel_ring_buffer *ring, int n); |
147 | int __must_check intel_ring_begin(struct intel_ring_buffer *ring, int n); | 167 | int __must_check intel_ring_begin(struct intel_ring_buffer *ring, int n); |