]> git.hungrycats.org Git - linux/commitdiff
drm/i915: fixup pageflip ringbuffer commands for i8xx
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 4 Aug 2010 19:22:09 +0000 (21:22 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 26 Aug 2010 23:45:54 +0000 (16:45 -0700)
commit 69d0b96c095468526009cb3104eee561c9252a84 upstream.

Add a new path for 2nd gen chips that uses the commands for i81x
chips (where public docs do exist) augmented with the plane bits
from i915. It seems to work and doesn't result in a black screen
like before.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
[anholt: resolved against conflict]
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/gpu/drm/i915/intel_display.c

index 8a84306292e01ed58ae39092814e2a6536a6acb4..a2f7f3c12311e30caa895c2af487d3c1e8375335 100644 (file)
@@ -4837,12 +4837,18 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
                OUT_RING(offset | obj_priv->tiling_mode);
                pipesrc = I915_READ(pipesrc_reg); 
                OUT_RING(pipesrc & 0x0fff0fff);
-       } else {
+       } else if (IS_GEN3(dev)) {
                OUT_RING(MI_DISPLAY_FLIP_I915 |
                         MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
                OUT_RING(fb->pitch);
                OUT_RING(offset);
                OUT_RING(MI_NOOP);
+       } else {
+               OUT_RING(MI_DISPLAY_FLIP |
+                        MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
+               OUT_RING(fb->pitch);
+               OUT_RING(offset);
+               OUT_RING(MI_NOOP);
        }
        ADVANCE_LP_RING();