From: Jesse Barnes When scheduled swaps occur, we need to blit between front & back buffers. If the buffers are tiled, we need to set the appropriate XY_SRC_COPY tile bit, but only on 965 chips, since it will cause corruption on pre-965 (e.g. 945). Bug reported by and fix tested by Tomas Janousek. Reported-by: Tomas Janousek Tested-by: Tomas Janousek Signed-off-by: Jesse Barnes Cc: Dave Airlie Cc: Keith Packard Cc: "Rafael J. Wysocki" Signed-off-by: Andrew Morton --- drivers/char/drm/i915_irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/char/drm/i915_irq.c~drm-i915-only-use-tiled-blits-on-965 drivers/char/drm/i915_irq.c --- a/drivers/char/drm/i915_irq.c~drm-i915-only-use-tiled-blits-on-965 +++ a/drivers/char/drm/i915_irq.c @@ -62,11 +62,11 @@ static void i915_vblank_tasklet(struct d u32 ropcpp = (0xcc << 16) | ((cpp - 1) << 24); RING_LOCALS; - if (sarea_priv->front_tiled) { + if (IS_I965G(dev) && sarea_priv->front_tiled) { cmd |= XY_SRC_COPY_BLT_DST_TILED; dst_pitch >>= 2; } - if (sarea_priv->back_tiled) { + if (IS_I965G(dev) && sarea_priv->back_tiled) { cmd |= XY_SRC_COPY_BLT_SRC_TILED; src_pitch >>= 2; } _