|
@@ -11998,6 +11998,9 @@ static int intel_crtc_atomic_check(struct drm_crtc *crtc,
|
|
|
DRM_DEBUG_KMS("No valid intermediate pipe watermarks are possible\n");
|
|
|
return ret;
|
|
|
}
|
|
|
+ } else if (dev_priv->display.compute_intermediate_wm) {
|
|
|
+ if (HAS_PCH_SPLIT(dev_priv) && INTEL_GEN(dev_priv) < 9)
|
|
|
+ pipe_config->wm.ilk.intermediate = pipe_config->wm.ilk.optimal;
|
|
|
}
|
|
|
|
|
|
if (INTEL_INFO(dev)->gen >= 9) {
|
|
@@ -15961,6 +15964,9 @@ retry:
|
|
|
|
|
|
state->acquire_ctx = &ctx;
|
|
|
|
|
|
+ /* ignore any reset values/BIOS leftovers in the WM registers */
|
|
|
+ to_intel_atomic_state(state)->skip_intermediate_wm = true;
|
|
|
+
|
|
|
for_each_crtc_in_state(state, crtc, crtc_state, i) {
|
|
|
/*
|
|
|
* Force recalculation even if we restore
|