[Intel-gfx] [PATCH 1/2] drm/i915: Mark uneven memory banks on gen4 desktop as unknown swizzling

Chris Wilson chris at chris-wilson.co.uk
Tue Nov 17 02:40:51 PST 2015


We have varied reports of swizzling corruption on gen4 desktop, and
confirmation that it is triggered by uneven memory banks. The
implication is that the swizzling various between the paired channels
and the remainder of memory on the single channel. As the object then
has unpredictable swizzling (it will vary depending on exact page
allocation and may even change during the object's lifetime as the pages
are replaced), we have to report to userspace that the swizzling is
unknown.

Reported-by: Matti Hämäläinen <ccr at tnsp.org>
References: https://bugs.freedesktop.org/show_bug.cgi?id=90725
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Matti Hämäläinen <ccr at tnsp.org>
Cc: stable at vger.kernel.org
---
 drivers/gpu/drm/i915/i915_gem_fence.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_fence.c b/drivers/gpu/drm/i915/i915_gem_fence.c
index 40a10b25956c..6ba68083aa95 100644
--- a/drivers/gpu/drm/i915/i915_gem_fence.c
+++ b/drivers/gpu/drm/i915/i915_gem_fence.c
@@ -677,8 +677,8 @@ i915_gem_detect_bit_6_swizzle(struct drm_device *dev)
 		 * the minimum size of a rank.
 		 */
 		if (I915_READ16(C0DRB3) != I915_READ16(C1DRB3)) {
-			swizzle_x = I915_BIT_6_SWIZZLE_NONE;
-			swizzle_y = I915_BIT_6_SWIZZLE_NONE;
+			swizzle_x = I915_BIT_6_SWIZZLE_UNKNOWN;
+			swizzle_y = I915_BIT_6_SWIZZLE_UNKNOWN;
 		} else {
 			swizzle_x = I915_BIT_6_SWIZZLE_9_10;
 			swizzle_y = I915_BIT_6_SWIZZLE_9;
-- 
2.6.2



More information about the Intel-gfx mailing list