|
@@ -1790,13 +1790,13 @@ static void i9xx_disable_pll(struct intel_crtc *crtc)
|
|
|
/* Make sure the pipe isn't still relying on us */
|
|
|
assert_pipe_disabled(dev_priv, pipe);
|
|
|
|
|
|
- I915_WRITE(DPLL(pipe), 0);
|
|
|
+ I915_WRITE(DPLL(pipe), DPLL_VGA_MODE_DIS);
|
|
|
POSTING_READ(DPLL(pipe));
|
|
|
}
|
|
|
|
|
|
static void vlv_disable_pll(struct drm_i915_private *dev_priv, enum pipe pipe)
|
|
|
{
|
|
|
- u32 val = 0;
|
|
|
+ u32 val;
|
|
|
|
|
|
/* Make sure the pipe isn't still relying on us */
|
|
|
assert_pipe_disabled(dev_priv, pipe);
|
|
@@ -1805,6 +1805,7 @@ static void vlv_disable_pll(struct drm_i915_private *dev_priv, enum pipe pipe)
|
|
|
* Leave integrated clock source and reference clock enabled for pipe B.
|
|
|
* The latter is needed for VGA hotplug / manual detection.
|
|
|
*/
|
|
|
+ val = DPLL_VGA_MODE_DIS;
|
|
|
if (pipe == PIPE_B)
|
|
|
val = DPLL_INTEGRATED_CRI_CLK_VLV | DPLL_REFA_CLK_ENABLE_VLV;
|
|
|
I915_WRITE(DPLL(pipe), val);
|
|
@@ -1821,7 +1822,8 @@ static void chv_disable_pll(struct drm_i915_private *dev_priv, enum pipe pipe)
|
|
|
assert_pipe_disabled(dev_priv, pipe);
|
|
|
|
|
|
/* Set PLL en = 0 */
|
|
|
- val = DPLL_SSC_REF_CLOCK_CHV | DPLL_REFA_CLK_ENABLE_VLV;
|
|
|
+ val = DPLL_SSC_REF_CLOCK_CHV |
|
|
|
+ DPLL_REFA_CLK_ENABLE_VLV | DPLL_VGA_MODE_DIS;
|
|
|
if (pipe != PIPE_A)
|
|
|
val |= DPLL_INTEGRATED_CRI_CLK_VLV;
|
|
|
I915_WRITE(DPLL(pipe), val);
|