drm/i915: Use msleep instead of mdelay during wait_vblank_off

Avoid a potentially long busy-wait if we not in the process of
atomically switching to the kdb console.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 1e88ebb..594f8f2 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -1034,16 +1034,17 @@
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	int pipedsl_reg = (pipe == 0 ? PIPEADSL : PIPEBDSL);
 	unsigned long timeout = jiffies + msecs_to_jiffies(100);
-	u32 last_line;
+	u32 last_line, line;
 
 	/* Wait for the display line to settle */
+	line = I915_READ(pipedsl_reg) & DSL_LINEMASK;
 	do {
-		last_line = I915_READ(pipedsl_reg) & DSL_LINEMASK;
-		mdelay(5);
-	} while (((I915_READ(pipedsl_reg) & DSL_LINEMASK) != last_line) &&
-		 time_after(timeout, jiffies));
+		last_line = line;
+		MSLEEP(5);
+		line = I915_READ(pipedsl_reg) & DSL_LINEMASK;
+	} while (line != last_line && time_after(timeout, jiffies));
 
-	if (time_after(jiffies, timeout))
+	if (line != last_line)
 		DRM_DEBUG_KMS("vblank wait timed out\n");
 }