@@ -6179,6 +6179,9 @@ static void intel_crtc_disable_noatomic(struct drm_crtc *crtc)
for_each_power_domain(domain, domains)
intel_display_power_put(dev_priv, domain);
intel_crtc->enabled_power_domains = 0;
+ intel_crtc->active = false;
+ intel_disable_shared_dpll(intel_crtc);
+ intel_update_watermarks(crtc);
}
/*
@@ -13158,7 +13161,8 @@ static int __intel_set_mode(struct drm_atomic_state *state)
if (needs_modeset(crtc->state) && crtc->state->active) {
update_scanline_offset(to_intel_crtc(crtc));
dev_priv->display.crtc_enable(crtc);
- }
+ } else if (!crtc->state->active && crtc_state->active)
+ intel_update_watermarks(crtc);
drm_atomic_helper_commit_planes_on_crtc(crtc_state);
}