aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem_tiling.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_tiling.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem_tiling.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
index 99c4faa59d8f..31d334d9d9da 100644
--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
+++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
@@ -92,7 +92,10 @@ i915_gem_detect_bit_6_swizzle(struct drm_device *dev)
92 uint32_t swizzle_x = I915_BIT_6_SWIZZLE_UNKNOWN; 92 uint32_t swizzle_x = I915_BIT_6_SWIZZLE_UNKNOWN;
93 uint32_t swizzle_y = I915_BIT_6_SWIZZLE_UNKNOWN; 93 uint32_t swizzle_y = I915_BIT_6_SWIZZLE_UNKNOWN;
94 94
95 if (INTEL_INFO(dev)->gen >= 5) { 95 if (INTEL_INFO(dev)->gen >= 6) {
96 swizzle_x = I915_BIT_6_SWIZZLE_NONE;
97 swizzle_y = I915_BIT_6_SWIZZLE_NONE;
98 } else if (IS_GEN5(dev)) {
96 /* On Ironlake whatever DRAM config, GPU always do 99 /* On Ironlake whatever DRAM config, GPU always do
97 * same swizzling setup. 100 * same swizzling setup.
98 */ 101 */
@@ -440,14 +443,9 @@ i915_gem_swizzle_page(struct page *page)
440void 443void
441i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj) 444i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj)
442{ 445{
443 struct drm_device *dev = obj->base.dev;
444 drm_i915_private_t *dev_priv = dev->dev_private;
445 int page_count = obj->base.size >> PAGE_SHIFT; 446 int page_count = obj->base.size >> PAGE_SHIFT;
446 int i; 447 int i;
447 448
448 if (dev_priv->mm.bit_6_swizzle_x != I915_BIT_6_SWIZZLE_9_10_17)
449 return;
450
451 if (obj->bit_17 == NULL) 449 if (obj->bit_17 == NULL)
452 return; 450 return;
453 451
@@ -464,14 +462,9 @@ i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj)
464void 462void
465i915_gem_object_save_bit_17_swizzle(struct drm_i915_gem_object *obj) 463i915_gem_object_save_bit_17_swizzle(struct drm_i915_gem_object *obj)
466{ 464{
467 struct drm_device *dev = obj->base.dev;
468 drm_i915_private_t *dev_priv = dev->dev_private;
469 int page_count = obj->base.size >> PAGE_SHIFT; 465 int page_count = obj->base.size >> PAGE_SHIFT;
470 int i; 466 int i;
471 467
472 if (dev_priv->mm.bit_6_swizzle_x != I915_BIT_6_SWIZZLE_9_10_17)
473 return;
474
475 if (obj->bit_17 == NULL) { 468 if (obj->bit_17 == NULL) {
476 obj->bit_17 = kmalloc(BITS_TO_LONGS(page_count) * 469 obj->bit_17 = kmalloc(BITS_TO_LONGS(page_count) *
477 sizeof(long), GFP_KERNEL); 470 sizeof(long), GFP_KERNEL);