[PATCH][SRU Precise] UBUNTU: SAUCE: fix i915 regression after commit 9594e7e

Herton Ronaldo Krzesinski herton.krzesinski at canonical.com
Tue Feb 12 23:19:12 UTC 2013


commit 9594e7e, A backport for stable from commit
e7d841ca03b7ab668620045cd7b428eda9f41601 upstream ("drm/i915: Close race
between processing unpin task and queueing the flip"), and which came
through 3.2.36 stable update, has two issues: duplicated
intel_mark_page_flip_active calls on intel_gen4_queue_flip, and one
intel_mark_page_flip_active call missing on intel_gen6_queue_flip.

The second issue is what should be causing issues, and the problems
being reported on bug 1096966. I was able to reproduce the issue,
and bisected to the described commit on stable. This fix solved the
problem.

BugLink: http://bugs.launchpad.net/bugs/1119809
Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski at canonical.com>
---
 drivers/gpu/drm/i915/intel_display.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 4da3c7e..ce23961 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -7155,8 +7155,6 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
 	OUT_RING(pf | pipesrc);
 
 	intel_mark_page_flip_active(intel_crtc);
-
-	intel_mark_page_flip_active(intel_crtc);
 	ADVANCE_LP_RING();
 	return 0;
 
@@ -7192,6 +7190,8 @@ static int intel_gen6_queue_flip(struct drm_device *dev,
 	pf = I915_READ(PF_CTL(intel_crtc->pipe)) & PF_ENABLE;
 	pipesrc = I915_READ(PIPESRC(intel_crtc->pipe)) & 0x0fff0fff;
 	OUT_RING(pf | pipesrc);
+
+	intel_mark_page_flip_active(intel_crtc);
 	ADVANCE_LP_RING();
 	return 0;
 
-- 
1.7.9.5





More information about the kernel-team mailing list