drm/i915: Loop over all active pipes in intel_mbus_dbox_update
We need to loop through all active pipes, not just the ones, that are in current state, because disabling and enabling even a particular pipe affects credits in another one. Reviewed-by: Uma Shankar <uma.shankar@intel.com> Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240402155016.13733-6-ville.syrjala@linux.intel.com
This commit is contained in:
parent
31df4904a5
commit
e8333ab22c
@ -3680,10 +3680,8 @@ void intel_mbus_dbox_update(struct intel_atomic_state *state)
|
||||
{
|
||||
struct drm_i915_private *i915 = to_i915(state->base.dev);
|
||||
const struct intel_dbuf_state *new_dbuf_state, *old_dbuf_state;
|
||||
const struct intel_crtc_state *new_crtc_state;
|
||||
const struct intel_crtc *crtc;
|
||||
u32 val = 0;
|
||||
int i;
|
||||
|
||||
if (DISPLAY_VER(i915) < 11)
|
||||
return;
|
||||
@ -3727,12 +3725,9 @@ void intel_mbus_dbox_update(struct intel_atomic_state *state)
|
||||
val |= MBUS_DBOX_B_CREDIT(8);
|
||||
}
|
||||
|
||||
for_each_new_intel_crtc_in_state(state, crtc, new_crtc_state, i) {
|
||||
for_each_intel_crtc_in_pipe_mask(&i915->drm, crtc, new_dbuf_state->active_pipes) {
|
||||
u32 pipe_val = val;
|
||||
|
||||
if (!new_crtc_state->hw.active)
|
||||
continue;
|
||||
|
||||
if (DISPLAY_VER(i915) >= 14) {
|
||||
if (xelpdp_is_only_pipe_per_dbuf_bank(crtc->pipe,
|
||||
new_dbuf_state->active_pipes))
|
||||
|
Loading…
x
Reference in New Issue
Block a user