|
|
@@ -1844,7 +1844,8 @@ static void chv_disable_pll(struct drm_i915_private *dev_priv, enum pipe pipe)
|
|
|
}
|
|
|
|
|
|
void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
|
|
|
- struct intel_digital_port *dport)
|
|
|
+ struct intel_digital_port *dport,
|
|
|
+ unsigned int expected_mask)
|
|
|
{
|
|
|
u32 port_mask;
|
|
|
int dpll_reg;
|
|
|
@@ -1857,6 +1858,7 @@ void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
|
|
|
case PORT_C:
|
|
|
port_mask = DPLL_PORTC_READY_MASK;
|
|
|
dpll_reg = DPLL(0);
|
|
|
+ expected_mask <<= 4;
|
|
|
break;
|
|
|
case PORT_D:
|
|
|
port_mask = DPLL_PORTD_READY_MASK;
|
|
|
@@ -1866,9 +1868,9 @@ void vlv_wait_port_ready(struct drm_i915_private *dev_priv,
|
|
|
BUG();
|
|
|
}
|
|
|
|
|
|
- if (wait_for((I915_READ(dpll_reg) & port_mask) == 0, 1000))
|
|
|
- WARN(1, "timed out waiting for port %c ready: 0x%08x\n",
|
|
|
- port_name(dport->port), I915_READ(dpll_reg));
|
|
|
+ if (wait_for((I915_READ(dpll_reg) & port_mask) == expected_mask, 1000))
|
|
|
+ WARN(1, "timed out waiting for port %c ready: got 0x%x, expected 0x%x\n",
|
|
|
+ port_name(dport->port), I915_READ(dpll_reg) & port_mask, expected_mask);
|
|
|
}
|
|
|
|
|
|
static void intel_prepare_shared_dpll(struct intel_crtc *crtc)
|