summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_overlay.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2009-10-04 15:00:36 +0200
committerEric Anholt <eric@anholt.net>2009-11-05 23:47:10 +0100
commit5c5a4359fe392b52b444134877fc4002be542b42 (patch)
tree5a4b5cbb0eb90a60086ba962ef3ce0823d129cd9 /drivers/gpu/drm/i915/intel_overlay.c
parentdrm/i915: kill i915_lp_ring_sync (diff)
downloadlinux-5c5a4359fe392b52b444134877fc4002be542b42.tar.xz
linux-5c5a4359fe392b52b444134877fc4002be542b42.zip
drm/i915: overlay: kill one more unnecessary uninterruptible sleep
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@ffwll.ch> Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_overlay.c')
-rw-r--r--drivers/gpu/drm/i915/intel_overlay.c17
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 972d715245be..f1bf0b0c204c 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;