diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 39f37bb7a16a..21103a547aa7 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -1694,6 +1694,7 @@ static void vlv_disable_pll(struct drm_i915_private *dev_priv, enum pipe pipe) | |||
1694 | 1694 | ||
1695 | static void chv_disable_pll(struct drm_i915_private *dev_priv, enum pipe pipe) | 1695 | static void chv_disable_pll(struct drm_i915_private *dev_priv, enum pipe pipe) |
1696 | { | 1696 | { |
1697 | enum dpio_channel port = vlv_pipe_to_channel(pipe); | ||
1697 | u32 val; | 1698 | u32 val; |
1698 | 1699 | ||
1699 | /* Make sure the pipe isn't still relying on us */ | 1700 | /* Make sure the pipe isn't still relying on us */ |
@@ -1705,6 +1706,15 @@ static void chv_disable_pll(struct drm_i915_private *dev_priv, enum pipe pipe) | |||
1705 | val |= DPLL_INTEGRATED_CRI_CLK_VLV; | 1706 | val |= DPLL_INTEGRATED_CRI_CLK_VLV; |
1706 | I915_WRITE(DPLL(pipe), val); | 1707 | I915_WRITE(DPLL(pipe), val); |
1707 | POSTING_READ(DPLL(pipe)); | 1708 | POSTING_READ(DPLL(pipe)); |
1709 | |||
1710 | mutex_lock(&dev_priv->dpio_lock); | ||
1711 | |||
1712 | /* Disable 10bit clock to display controller */ | ||
1713 | val = vlv_dpio_read(dev_priv, pipe, CHV_CMN_DW14(port)); | ||
1714 | val &= ~DPIO_DCLKP_EN; | ||
1715 | vlv_dpio_write(dev_priv, pipe, CHV_CMN_DW14(port), val); | ||
1716 | |||
1717 | mutex_unlock(&dev_priv->dpio_lock); | ||
1708 | } | 1718 | } |
1709 | 1719 | ||
1710 | void vlv_wait_port_ready(struct drm_i915_private *dev_priv, | 1720 | void vlv_wait_port_ready(struct drm_i915_private *dev_priv, |
@@ -5538,11 +5548,6 @@ static void chv_update_pll(struct intel_crtc *crtc) | |||
5538 | val &= ~(DPIO_PCS_TX_LANE2_RESET | DPIO_PCS_TX_LANE1_RESET); | 5548 | val &= ~(DPIO_PCS_TX_LANE2_RESET | DPIO_PCS_TX_LANE1_RESET); |
5539 | vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(port), val); | 5549 | vlv_dpio_write(dev_priv, pipe, VLV_PCS_DW0(port), val); |
5540 | 5550 | ||
5541 | /* Disable 10bit clock to display controller */ | ||
5542 | val = vlv_dpio_read(dev_priv, pipe, CHV_CMN_DW14(port)); | ||
5543 | val &= ~DPIO_DCLKP_EN; | ||
5544 | vlv_dpio_write(dev_priv, pipe, CHV_CMN_DW14(port), val); | ||
5545 | |||
5546 | /* p1 and p2 divider */ | 5551 | /* p1 and p2 divider */ |
5547 | vlv_dpio_write(dev_priv, pipe, CHV_CMN_DW13(port), | 5552 | vlv_dpio_write(dev_priv, pipe, CHV_CMN_DW13(port), |
5548 | 5 << DPIO_CHV_S1_DIV_SHIFT | | 5553 | 5 << DPIO_CHV_S1_DIV_SHIFT | |