aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/i915/intel_dp.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 1d8d068bc473..df648cb4c296 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1374,9 +1374,11 @@ intel_dp_link_down(struct intel_dp *intel_dp)
1374{ 1374{
1375 struct drm_device *dev = intel_dp->base.base.dev; 1375 struct drm_device *dev = intel_dp->base.base.dev;
1376 struct drm_i915_private *dev_priv = dev->dev_private; 1376 struct drm_i915_private *dev_priv = dev->dev_private;
1377 struct intel_crtc *intel_crtc = to_intel_crtc(intel_dp->base.base.crtc);
1378 uint32_t DP = intel_dp->DP; 1377 uint32_t DP = intel_dp->DP;
1379 1378
1379 if ((I915_READ(intel_dp->output_reg) & DP_PORT_EN) == 0)
1380 return;
1381
1380 DRM_DEBUG_KMS("\n"); 1382 DRM_DEBUG_KMS("\n");
1381 1383
1382 if (is_edp(intel_dp)) { 1384 if (is_edp(intel_dp)) {
@@ -1400,7 +1402,9 @@ intel_dp_link_down(struct intel_dp *intel_dp)
1400 if (is_edp(intel_dp)) 1402 if (is_edp(intel_dp))
1401 DP |= DP_LINK_TRAIN_OFF; 1403 DP |= DP_LINK_TRAIN_OFF;
1402 1404
1403 if (!HAS_PCH_CPT(dev) && (DP & DP_PIPEB_SELECT)) { 1405 if (!HAS_PCH_CPT(dev) &&
1406 I915_READ(intel_dp->output_reg) & DP_PIPEB_SELECT) {
1407 struct intel_crtc *intel_crtc = to_intel_crtc(intel_dp->base.base.crtc);
1404 /* Hardware workaround: leaving our transcoder select 1408 /* Hardware workaround: leaving our transcoder select
1405 * set to transcoder B while it's off will prevent the 1409 * set to transcoder B while it's off will prevent the
1406 * corresponding HDMI output on transcoder A. 1410 * corresponding HDMI output on transcoder A.