Add a msleep to intel_wait_for_vblank(). Change intel_wait_for_vblank_off() to repeat *until* timeout.
Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> Cc: Jesse Barnes <jbar...@virtuousgeek.org> --- drivers/gpu/drm/i915/intel_display.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 6ccb797..d50830e 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -993,7 +993,7 @@ void intel_wait_for_vblank(struct drm_device *dev, int pipe) /* Wait for vblank interrupt bit to set */ if (wait_for((I915_READ(pipestat_reg) & PIPE_VBLANK_INTERRUPT_STATUS) == 0, - 50, 0)) + 50, 1)) DRM_DEBUG_KMS("vblank wait timed out\n"); } @@ -1019,9 +1019,12 @@ void intel_wait_for_vblank_off(struct drm_device *dev, int pipe) /* Wait for the display line to settle */ do { last_line = I915_READ(pipedsl_reg) & DSL_LINEMASK; - mdelay(5); + if (in_dbg_master()) + mdelay(5); + else + msleep(5); } while (((I915_READ(pipedsl_reg) & DSL_LINEMASK) != last_line) && - time_after(timeout, jiffies)); + !time_after(timeout, jiffies)); if (time_after(jiffies, timeout)) DRM_DEBUG_KMS("vblank wait timed out\n"); -- 1.7.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx