diff options
author | Keith Packard <keithp@keithp.com> | 2011-08-03 10:41:19 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2011-08-03 10:41:19 -0700 |
commit | 3d208bef113657e27f8731921454d6da408b76c5 (patch) | |
tree | 8918890a296cefe35ada0bf813f6a30fdb8121b9 | |
parent | 62ac41a6e443ef26b9de862c6e20c088e2b04dde (diff) | |
parent | 4edd17a25c99f34bd7a75c1daf31afe840237da8 (diff) |
Merge branch 'drm-intel-fixes' into drm-intel-next
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 84bfdd1434f5..0feae908bb37 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -317,9 +317,17 @@ intel_dp_aux_ch(struct intel_dp *intel_dp, else precharge = 5; - if (I915_READ(ch_ctl) & DP_AUX_CH_CTL_SEND_BUSY) { - DRM_ERROR("dp_aux_ch not started status 0x%08x\n", - I915_READ(ch_ctl)); + /* Try to wait for any previous AUX channel activity */ + for (try = 0; try < 3; try++) { + status = I915_READ(ch_ctl); + if ((status & DP_AUX_CH_CTL_SEND_BUSY) == 0) + break; + msleep(1); + } + + if (try == 3) { + WARN(1, "dp_aux_ch not started status 0x%08x\n", + I915_READ(ch_ctl)); return -EBUSY; } @@ -1690,7 +1698,6 @@ intel_dp_detect(struct drm_connector *connector, bool force) struct edid *edid = NULL; intel_dp->has_audio = false; - memset(intel_dp->dpcd, 0, sizeof(intel_dp->dpcd)); if (HAS_PCH_SPLIT(dev)) status = ironlake_dp_detect(intel_dp); |