From: Sourab Gupta <sourab.gupta@xxxxxxxxx> This patch fixes the race condition between flip done interrupt from set base and mmio based page flip. This patch is dependent on http://lists.freedesktop.org/archives/intel-gfx/2014-April/043761.html Also, for the details of the race condition please refer to the mentioned patch. Signed-off-by: Sourab Gupta <sourab.gupta@xxxxxxxxx> Signed-off-by: Akash Goel <akash.goel@xxxxxxxxx> --- drivers/gpu/drm/i915/intel_display.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index b3e7fc6..0099c56 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -9221,8 +9221,8 @@ static void intel_do_mmio_flip(struct intel_crtc *intel_crtc) intel_mark_page_flip_active(intel_crtc); - I915_WRITE(DSPSURF(intel_crtc->plane), i915_gem_obj_ggtt_offset(obj) + - intel_crtc->dspaddr_offset); + I915_WRITE(DSPSURF(intel_crtc->plane), + intel_crtc->unpin_work->gtt_offset); POSTING_READ(DSPSURF(intel_crtc->plane)); } @@ -9296,6 +9296,10 @@ static int intel_queue_mmio_flip(struct drm_device *dev, goto err_unpin; } + intel_crtc->unpin_work->gtt_offset = + i915_gem_obj_ggtt_offset(obj) + + intel_crtc->dspaddr_offset; + ret = intel_postpone_flip(obj); if (ret < 0) { goto err_unpin; -- 1.8.5.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx