drm/i915: Track cursor changes as frontbuffer tracking flushes
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 8 Aug 2014 18:27:01 +0000 (20:27 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 14 Aug 2014 20:49:47 +0000 (22:49 +0200)
We treat other plane updates in the same fashion. Spotted because
Rodrigo kept reporting a bug in the PSR code where the frontbuffer was
eternally stuck with a dirty cursor bit set.

The psr testcase should have caught this, but that i-g-t is kaputt.
Rodrigo is signed up to fix that.

Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Tested-by-and-Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c

index fd15601f6360f816ef94f3efe9eab11039e73b88..b2e4eac7b70b1c87f67b9ad946c12426c4094afd 100644 (file)
@@ -11782,6 +11782,10 @@ intel_cursor_plane_update(struct drm_plane *plane, struct drm_crtc *crtc,
                return intel_crtc_cursor_set_obj(crtc, obj, crtc_w, crtc_h);
        } else {
                intel_crtc_update_cursor(crtc, visible);
+
+               intel_frontbuffer_flip(crtc->dev,
+                                      INTEL_FRONTBUFFER_CURSOR(intel_crtc->pipe));
+
                return 0;
        }
 }