diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_dp.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index eea9e366a109..a74aaf9242b9 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
@@ -3521,8 +3521,6 @@ intel_dp_link_down(struct intel_dp *intel_dp) | |||
3521 | enum port port = intel_dig_port->port; | 3521 | enum port port = intel_dig_port->port; |
3522 | struct drm_device *dev = intel_dig_port->base.base.dev; | 3522 | struct drm_device *dev = intel_dig_port->base.base.dev; |
3523 | struct drm_i915_private *dev_priv = dev->dev_private; | 3523 | struct drm_i915_private *dev_priv = dev->dev_private; |
3524 | struct intel_crtc *intel_crtc = | ||
3525 | to_intel_crtc(intel_dig_port->base.base.crtc); | ||
3526 | uint32_t DP = intel_dp->DP; | 3524 | uint32_t DP = intel_dp->DP; |
3527 | 3525 | ||
3528 | if (WARN_ON(HAS_DDI(dev))) | 3526 | if (WARN_ON(HAS_DDI(dev))) |
@@ -3547,8 +3545,6 @@ intel_dp_link_down(struct intel_dp *intel_dp) | |||
3547 | 3545 | ||
3548 | if (HAS_PCH_IBX(dev) && | 3546 | if (HAS_PCH_IBX(dev) && |
3549 | I915_READ(intel_dp->output_reg) & DP_PIPEB_SELECT) { | 3547 | I915_READ(intel_dp->output_reg) & DP_PIPEB_SELECT) { |
3550 | struct drm_crtc *crtc = intel_dig_port->base.base.crtc; | ||
3551 | |||
3552 | /* Hardware workaround: leaving our transcoder select | 3548 | /* Hardware workaround: leaving our transcoder select |
3553 | * set to transcoder B while it's off will prevent the | 3549 | * set to transcoder B while it's off will prevent the |
3554 | * corresponding HDMI output on transcoder A. | 3550 | * corresponding HDMI output on transcoder A. |
@@ -3559,18 +3555,7 @@ intel_dp_link_down(struct intel_dp *intel_dp) | |||
3559 | */ | 3555 | */ |
3560 | DP &= ~DP_PIPEB_SELECT; | 3556 | DP &= ~DP_PIPEB_SELECT; |
3561 | I915_WRITE(intel_dp->output_reg, DP); | 3557 | I915_WRITE(intel_dp->output_reg, DP); |
3562 | 3558 | POSTING_READ(intel_dp->output_reg); | |
3563 | /* Changes to enable or select take place the vblank | ||
3564 | * after being written. | ||
3565 | */ | ||
3566 | if (WARN_ON(crtc == NULL)) { | ||
3567 | /* We should never try to disable a port without a crtc | ||
3568 | * attached. For paranoia keep the code around for a | ||
3569 | * bit. */ | ||
3570 | POSTING_READ(intel_dp->output_reg); | ||
3571 | msleep(50); | ||
3572 | } else | ||
3573 | intel_wait_for_vblank(dev, intel_crtc->pipe); | ||
3574 | } | 3559 | } |
3575 | 3560 | ||
3576 | DP &= ~DP_AUDIO_OUTPUT_ENABLE; | 3561 | DP &= ~DP_AUDIO_OUTPUT_ENABLE; |
@@ -4446,7 +4431,7 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd) | |||
4446 | */ | 4431 | */ |
4447 | DRM_DEBUG_KMS("ignoring long hpd on eDP port %c\n", | 4432 | DRM_DEBUG_KMS("ignoring long hpd on eDP port %c\n", |
4448 | port_name(intel_dig_port->port)); | 4433 | port_name(intel_dig_port->port)); |
4449 | return false; | 4434 | return IRQ_HANDLED; |
4450 | } | 4435 | } |
4451 | 4436 | ||
4452 | DRM_DEBUG_KMS("got hpd irq on port %c - %s\n", | 4437 | DRM_DEBUG_KMS("got hpd irq on port %c - %s\n", |