Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/i915/ddi: disable trancoder port select for 128b/132b SST

128b/1232b SST will have mst_master_transcoder set and matching
cpu_transcoder. Ensure disable also for 128b/132b SST.

Reviewed-by: Imre Deak <imre.deak@intel.com>
Co-developed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/eaf705b3490d828ba33e85f40a7794d58de7c5ad.1735912293.git.jani.nikula@intel.com

+3 -1
+3 -1
drivers/gpu/drm/i915/display/intel_ddi.c
··· 658 658 struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); 659 659 struct drm_i915_private *dev_priv = to_i915(crtc->base.dev); 660 660 enum transcoder cpu_transcoder = crtc_state->cpu_transcoder; 661 + bool is_mst = intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST); 661 662 u32 ctl; 662 663 663 664 if (DISPLAY_VER(dev_priv) >= 11) ··· 678 677 TRANS_DDI_PORT_SYNC_MASTER_SELECT_MASK); 679 678 680 679 if (DISPLAY_VER(dev_priv) >= 12) { 681 - if (!intel_dp_mst_is_master_trans(crtc_state)) { 680 + if (!intel_dp_mst_is_master_trans(crtc_state) || 681 + (!is_mst && intel_dp_is_uhbr(crtc_state))) { 682 682 ctl &= ~(TGL_TRANS_DDI_PORT_MASK | 683 683 TRANS_DDI_MODE_SELECT_MASK); 684 684 }