aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 338570e61a1f..84ce66be88f2 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12258,6 +12258,8 @@ static void skl_update_crtcs(struct drm_atomic_state *state)
12258 bool progress; 12258 bool progress;
12259 enum pipe pipe; 12259 enum pipe pipe;
12260 int i; 12260 int i;
12261 u8 hw_enabled_slices = dev_priv->wm.skl_hw.ddb.enabled_slices;
12262 u8 required_slices = intel_state->wm_results.ddb.enabled_slices;
12261 12263
12262 const struct skl_ddb_entry *entries[I915_MAX_PIPES] = {}; 12264 const struct skl_ddb_entry *entries[I915_MAX_PIPES] = {};
12263 12265
@@ -12266,6 +12268,10 @@ static void skl_update_crtcs(struct drm_atomic_state *state)
12266 if (new_crtc_state->active) 12268 if (new_crtc_state->active)
12267 entries[i] = &to_intel_crtc_state(old_crtc_state)->wm.skl.ddb; 12269 entries[i] = &to_intel_crtc_state(old_crtc_state)->wm.skl.ddb;
12268 12270
12271 /* If 2nd DBuf slice required, enable it here */
12272 if (INTEL_GEN(dev_priv) >= 11 && required_slices > hw_enabled_slices)
12273 icl_dbuf_slices_update(dev_priv, required_slices);
12274
12269 /* 12275 /*
12270 * Whenever the number of active pipes changes, we need to make sure we 12276 * Whenever the number of active pipes changes, we need to make sure we
12271 * update the pipes in the right order so that their ddb allocations 12277 * update the pipes in the right order so that their ddb allocations
@@ -12316,6 +12322,10 @@ static void skl_update_crtcs(struct drm_atomic_state *state)
12316 progress = true; 12322 progress = true;
12317 } 12323 }
12318 } while (progress); 12324 } while (progress);
12325
12326 /* If 2nd DBuf slice is no more required disable it */
12327 if (INTEL_GEN(dev_priv) >= 11 && required_slices < hw_enabled_slices)
12328 icl_dbuf_slices_update(dev_priv, required_slices);
12319} 12329}
12320 12330
12321static void intel_atomic_helper_free_state(struct drm_i915_private *dev_priv) 12331static void intel_atomic_helper_free_state(struct drm_i915_private *dev_priv)