X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fgpu%2Fdrm%2Fi915%2Fi915_gem_tiling.c;fp=drivers%2Fgpu%2Fdrm%2Fi915%2Fi915_gem_tiling.c;h=d61e74a08f829b1491b61e4557c689546dce9c3f;hb=973097fed0dc6a0efd4c525d61d9537de0d3de53;hp=633bd1fcab6925881048e7310f9aa40e4f9db868;hpb=579f2be0987351fcea0f2a06d6ac7a4baca4f96e;p=uclinux-h8%2Flinux.git diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c index 633bd1fcab69..d61e74a08f82 100644 --- a/drivers/gpu/drm/i915/i915_gem_tiling.c +++ b/drivers/gpu/drm/i915/i915_gem_tiling.c @@ -183,8 +183,18 @@ i915_gem_detect_bit_6_swizzle(struct drm_device *dev) if (IS_GEN4(dev)) { uint32_t ddc2 = I915_READ(DCC2); - if (!(ddc2 & DCC2_MODIFIED_ENHANCED_DISABLE)) + if (!(ddc2 & DCC2_MODIFIED_ENHANCED_DISABLE)) { + /* Since the swizzling may vary within an + * object, we have no idea what the swizzling + * is for any page in particular. Thus we + * cannot migrate tiled pages using the GPU, + * nor can we tell userspace what the exact + * swizzling is for any object. + */ dev_priv->quirks |= QUIRK_PIN_SWIZZLED_PAGES; + swizzle_x = I915_BIT_6_SWIZZLE_UNKNOWN; + swizzle_y = I915_BIT_6_SWIZZLE_UNKNOWN; + } } if (dcc == 0xffffffff) {