Commit 0d6695b1 authored by Stanislav Lisovskiy's avatar Stanislav Lisovskiy Committed by Jani Nikula

drm/i915/adl_p: Same slices mask is not same Dbuf state

We currently treat same slice mask as a same DBuf state and skip
updating the Dbuf slices, if we detect that.
This is wrong as if we have a multi to single pipe change or
vice versa, that would be treated as a same Dbuf state and thus
no changes required, so we don't get Mbus updated, causing issues.
Solution: check also mbus_join, in addition to slices mask.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: default avatarUma Shankar <uma.shankar@intel.com>
Signed-off-by: default avatarStanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210527110106.21434-1-stanislav.lisovskiy@intel.com
parent d62686ba
...@@ -8093,7 +8093,8 @@ void intel_dbuf_pre_plane_update(struct intel_atomic_state *state) ...@@ -8093,7 +8093,8 @@ void intel_dbuf_pre_plane_update(struct intel_atomic_state *state)
intel_atomic_get_old_dbuf_state(state); intel_atomic_get_old_dbuf_state(state);
if (!new_dbuf_state || if (!new_dbuf_state ||
new_dbuf_state->enabled_slices == old_dbuf_state->enabled_slices) ((new_dbuf_state->enabled_slices == old_dbuf_state->enabled_slices)
&& (new_dbuf_state->joined_mbus == old_dbuf_state->joined_mbus)))
return; return;
WARN_ON(!new_dbuf_state->base.changed); WARN_ON(!new_dbuf_state->base.changed);
...@@ -8113,7 +8114,8 @@ void intel_dbuf_post_plane_update(struct intel_atomic_state *state) ...@@ -8113,7 +8114,8 @@ void intel_dbuf_post_plane_update(struct intel_atomic_state *state)
intel_atomic_get_old_dbuf_state(state); intel_atomic_get_old_dbuf_state(state);
if (!new_dbuf_state || if (!new_dbuf_state ||
new_dbuf_state->enabled_slices == old_dbuf_state->enabled_slices) ((new_dbuf_state->enabled_slices == old_dbuf_state->enabled_slices)
&& (new_dbuf_state->joined_mbus == old_dbuf_state->joined_mbus)))
return; return;
WARN_ON(!new_dbuf_state->base.changed); WARN_ON(!new_dbuf_state->base.changed);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment