[Intel-gfx] [PATCH] drm/i915: overlay: kill one more unnecessary uninterruptible sleep

Daniel Vetter daniel.vetter at ffwll.ch
Sun Oct 4 15:00:36 CEST 2009


I've simply overlooked one case in the conversion to interruptible
sleeps. Rectify this.

Also delete a leftover debug printk.

Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
---
 drivers/gpu/drm/i915/intel_overlay.c |   17 +++++++----------
 1 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c
index 972d715..f1bf0b0 100644
--- a/drivers/gpu/drm/i915/intel_overlay.c
+++ b/drivers/gpu/drm/i915/intel_overlay.c
@@ -286,16 +286,15 @@ static int intel_overlay_wait_flip(struct intel_overlay *overlay)
 	RING_LOCALS;
 
 	if (overlay->last_flip_req != 0) {
-		ret = i915_do_wait_request(dev, overlay->last_flip_req, 0);
-		if (ret != 0)
-			return ret;
-
-		overlay->last_flip_req = 0;
+		ret = i915_do_wait_request(dev, overlay->last_flip_req, 1);
+		if (ret == 0) {
+			overlay->last_flip_req = 0;
 
-		tmp = I915_READ(ISR);
+			tmp = I915_READ(ISR);
 
-		if (!(tmp & I915_OVERLAY_PLANE_FLIP_PENDING_INTERRUPT))
-			return 0;
+			if (!(tmp & I915_OVERLAY_PLANE_FLIP_PENDING_INTERRUPT))
+				return 0;
+		}
 	}
 
 	/* synchronous slowpath */
@@ -439,8 +438,6 @@ int intel_overlay_recover_from_interrupt(struct intel_overlay *overlay,
 				return ret;
 
 		case SWITCH_OFF_STAGE_2:
-			printk("switch off 2\n");
-
 			BUG_ON(!overlay->vid_bo);
 			obj = overlay->vid_bo->obj;
 
-- 
1.6.4.3




More information about the Intel-gfx mailing list