aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-08-03 13:41:19 -0400
committerKeith Packard <keithp@keithp.com>2011-08-03 13:41:19 -0400
commit3d208bef113657e27f8731921454d6da408b76c5 (patch)
tree8918890a296cefe35ada0bf813f6a30fdb8121b9
parent62ac41a6e443ef26b9de862c6e20c088e2b04dde (diff)
parent4edd17a25c99f34bd7a75c1daf31afe840237da8 (diff)
Merge branch 'drm-intel-fixes' into drm-intel-next
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c15
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,
317 else 317 else
318 precharge = 5; 318 precharge = 5;
319 319
320 if (I915_READ(ch_ctl) & DP_AUX_CH_CTL_SEND_BUSY) { 320 /* Try to wait for any previous AUX channel activity */
321 DRM_ERROR("dp_aux_ch not started status 0x%08x\n", 321 for (try = 0; try < 3; try++) {
322 I915_READ(ch_ctl)); 322 status = I915_READ(ch_ctl);
323 if ((status & DP_AUX_CH_CTL_SEND_BUSY) == 0)
324 break;
325 msleep(1);
326 }
327
328 if (try == 3) {
329 WARN(1, "dp_aux_ch not started status 0x%08x\n",
330 I915_READ(ch_ctl));
323 return -EBUSY; 331 return -EBUSY;
324 } 332 }
325 333
@@ -1690,7 +1698,6 @@ intel_dp_detect(struct drm_connector *connector, bool force)
1690 struct edid *edid = NULL; 1698 struct edid *edid = NULL;
1691 1699
1692 intel_dp->has_audio = false; 1700 intel_dp->has_audio = false;
1693 memset(intel_dp->dpcd, 0, sizeof(intel_dp->dpcd));
1694 1701
1695 if (HAS_PCH_SPLIT(dev)) 1702 if (HAS_PCH_SPLIT(dev))
1696 status = ironlake_dp_detect(intel_dp); 1703 status = ironlake_dp_detect(intel_dp);