Commit 16fef33
drm/i915/dp_mst: Fix encoder HW state readout for UHBR MST
The encoder HW/SW state verification should use a SW state which stays
unchanged while the encoder/output is active. The intel_dp::is_mst flag
used during state computation to choose between the DP SST/MST modes can
change while the output is active, if the sink gets disconnected or the
MST topology is removed for another reason. A subsequent state
verification using intel_dp::is_mst leads then to a mismatch if the
output is disabled/re-enabled without recomputing its state.
Use the encoder's active MST link count instead, which will be always
non-zero for an active MST output and will be zero for SST.
Fixes: 35d2e4b ("drm/i915/ddi: start distinguishing 128b/132b SST and MST at state readout")
Fixes: 40d489f ("drm/i915/ddi: handle 128b/132b SST in intel_ddi_read_func_ctl()")
Cc: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250224093242.1859583-1-imre.deak@intel.com
(cherry picked from commit 0159e31)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>1 parent d082ecb commit 16fef33
1 file changed
Lines changed: 5 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
866 | 866 | | |
867 | 867 | | |
868 | 868 | | |
869 | | - | |
| 869 | + | |
870 | 870 | | |
871 | 871 | | |
872 | 872 | | |
| |||
878 | 878 | | |
879 | 879 | | |
880 | 880 | | |
881 | | - | |
| 881 | + | |
| 882 | + | |
882 | 883 | | |
883 | 884 | | |
884 | 885 | | |
| |||
4151 | 4152 | | |
4152 | 4153 | | |
4153 | 4154 | | |
4154 | | - | |
| 4155 | + | |
4155 | 4156 | | |
4156 | 4157 | | |
4157 | 4158 | | |
4158 | 4159 | | |
4159 | 4160 | | |
4160 | | - | |
| 4161 | + | |
4161 | 4162 | | |
4162 | 4163 | | |
4163 | 4164 | | |
| |||
0 commit comments