aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2011-09-12 15:30:02 -0400
committerKeith Packard <keithp@keithp.com>2011-10-20 17:11:18 -0400
commit6dacfd2faa398dc5206523ae6a2f8dd037488de8 (patch)
treed6d092b37368311e7dc7740607479813d2ad377f
parentacc83eb5a1e0ae7dbbf89ca2a1a943ade224bb84 (diff)
drm/i915: simplify swapin/out swizzle checking a bit
Use the helper function already employed by the pwrite/pread functions. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c4
-rw-r--r--drivers/gpu/drm/i915/i915_gem_tiling.c10
2 files changed, 2 insertions, 12 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index f0f885f44b87..d8e0c15c874f 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1476,7 +1476,7 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj,
1476 obj->pages[i] = page; 1476 obj->pages[i] = page;
1477 } 1477 }
1478 1478
1479 if (obj->tiling_mode != I915_TILING_NONE) 1479 if (i915_gem_object_needs_bit17_swizzle(obj))
1480 i915_gem_object_do_bit_17_swizzle(obj); 1480 i915_gem_object_do_bit_17_swizzle(obj);
1481 1481
1482 return 0; 1482 return 0;
@@ -1498,7 +1498,7 @@ i915_gem_object_put_pages_gtt(struct drm_i915_gem_object *obj)
1498 1498
1499 BUG_ON(obj->madv == __I915_MADV_PURGED); 1499 BUG_ON(obj->madv == __I915_MADV_PURGED);
1500 1500
1501 if (obj->tiling_mode != I915_TILING_NONE) 1501 if (i915_gem_object_needs_bit17_swizzle(obj))
1502 i915_gem_object_save_bit_17_swizzle(obj); 1502 i915_gem_object_save_bit_17_swizzle(obj);
1503 1503
1504 if (obj->madv == I915_MADV_DONTNEED) 1504 if (obj->madv == I915_MADV_DONTNEED)
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
index 103da6f2d03b..31d334d9d9da 100644
--- a/drivers/gpu/drm/i915/i915_gem_tiling.c
+++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
@@ -443,14 +443,9 @@ i915_gem_swizzle_page(struct page *page)
443void 443void
444i915_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)
445{ 445{
446 struct drm_device *dev = obj->base.dev;
447 drm_i915_private_t *dev_priv = dev->dev_private;
448 int page_count = obj->base.size >> PAGE_SHIFT; 446 int page_count = obj->base.size >> PAGE_SHIFT;
449 int i; 447 int i;
450 448
451 if (dev_priv->mm.bit_6_swizzle_x != I915_BIT_6_SWIZZLE_9_10_17)
452 return;
453
454 if (obj->bit_17 == NULL) 449 if (obj->bit_17 == NULL)
455 return; 450 return;
456 451
@@ -467,14 +462,9 @@ i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj)
467void 462void
468i915_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)
469{ 464{
470 struct drm_device *dev = obj->base.dev;
471 drm_i915_private_t *dev_priv = dev->dev_private;
472 int page_count = obj->base.size >> PAGE_SHIFT; 465 int page_count = obj->base.size >> PAGE_SHIFT;
473 int i; 466 int i;
474 467
475 if (dev_priv->mm.bit_6_swizzle_x != I915_BIT_6_SWIZZLE_9_10_17)
476 return;
477
478 if (obj->bit_17 == NULL) { 468 if (obj->bit_17 == NULL) {
479 obj->bit_17 = kmalloc(BITS_TO_LONGS(page_count) * 469 obj->bit_17 = kmalloc(BITS_TO_LONGS(page_count) *
480 sizeof(long), GFP_KERNEL); 470 sizeof(long), GFP_KERNEL);