|
@@ -3583,10 +3583,13 @@ void hsw_disable_ips(struct intel_crtc *crtc)
|
|
|
return;
|
|
|
|
|
|
assert_plane_enabled(dev_priv, crtc->plane);
|
|
|
- if (IS_BROADWELL(crtc->base.dev)) {
|
|
|
+ if (IS_BROADWELL(dev)) {
|
|
|
mutex_lock(&dev_priv->rps.hw_lock);
|
|
|
WARN_ON(sandybridge_pcode_write(dev_priv, DISPLAY_IPS_CONTROL, 0));
|
|
|
mutex_unlock(&dev_priv->rps.hw_lock);
|
|
|
+ /* wait for pcode to finish disabling IPS, which may take up to 42ms */
|
|
|
+ if (wait_for((I915_READ(IPS_CTL) & IPS_ENABLE) == 0, 42))
|
|
|
+ DRM_ERROR("Timed out waiting for IPS disable\n");
|
|
|
} else {
|
|
|
I915_WRITE(IPS_CTL, 0);
|
|
|
POSTING_READ(IPS_CTL);
|