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 */
return ret;
case SWITCH_OFF_STAGE_2:
- printk("switch off 2\n");
-
BUG_ON(!overlay->vid_bo);
obj = overlay->vid_bo->obj;