drm/i915: Poll for seqno completion if IRQ is disabled

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32288
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 726c2cc..5a0fbe5 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2000,7 +2000,6 @@
 		trace_i915_gem_request_wait_begin(dev, seqno);
 
 		ring->waiting_seqno = seqno;
-		ret = -ENODEV;
 		if (ring->irq_get(ring)) {
 			if (interruptible)
 				ret = wait_event_interruptible(ring->irq_queue,
@@ -2012,7 +2011,10 @@
 					   || atomic_read(&dev_priv->mm.wedged));
 
 			ring->irq_put(ring);
-		}
+		} else if (wait_for(i915_seqno_passed(ring->get_seqno(ring),
+						      seqno) ||
+				    atomic_read(&dev_priv->mm.wedged), 3000))
+			ret = -EBUSY;
 		ring->waiting_seqno = 0;
 
 		trace_i915_gem_request_wait_end(dev, seqno);