diff options
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 449364187bc0..ba72fbcbbbc9 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
@@ -315,9 +315,17 @@ intel_dp_aux_ch(struct intel_dp *intel_dp, | |||
315 | else | 315 | else |
316 | precharge = 5; | 316 | precharge = 5; |
317 | 317 | ||
318 | if (I915_READ(ch_ctl) & DP_AUX_CH_CTL_SEND_BUSY) { | 318 | /* Try to wait for any previous AUX channel activity */ |
319 | DRM_ERROR("dp_aux_ch not started status 0x%08x\n", | 319 | for (try = 0; try < 3; try++) { |
320 | I915_READ(ch_ctl)); | 320 | status = I915_READ(ch_ctl); |
321 | if ((status & DP_AUX_CH_CTL_SEND_BUSY) == 0) | ||
322 | break; | ||
323 | msleep(1); | ||
324 | } | ||
325 | |||
326 | if (try == 3) { | ||
327 | WARN(1, "dp_aux_ch not started status 0x%08x\n", | ||
328 | I915_READ(ch_ctl)); | ||
321 | return -EBUSY; | 329 | return -EBUSY; |
322 | } | 330 | } |
323 | 331 | ||