On Mon, 08 Sep 2025, Suraj Kandpal <suraj.kand...@intel.com> wrote: > Currently we check if the encoder is INVALID or -1 and throw a > WARN_ON but we still end up writing the temp value which will > overflow and corrupt the whole programmed value. > > --v2 > -Assign a bogus transcoder to master in case we get a INVALID > TRANSCODER [Jani] > > Fixes: 6671c367a9bea ("drm/i915/tgl: Select master transcoder for MST stream") > Signed-off-by: Suraj Kandpal <suraj.kand...@intel.com>
Reviewed-by: Jani Nikula <jani.nik...@intel.com> > --- > drivers/gpu/drm/i915/display/intel_ddi.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c > b/drivers/gpu/drm/i915/display/intel_ddi.c > index 46017091bb0b..f67ce35c1c00 100644 > --- a/drivers/gpu/drm/i915/display/intel_ddi.c > +++ b/drivers/gpu/drm/i915/display/intel_ddi.c > @@ -596,8 +596,9 @@ intel_ddi_transcoder_func_reg_val_get(struct > intel_encoder *encoder, > enum transcoder master; > > master = crtc_state->mst_master_transcoder; > - drm_WARN_ON(display->drm, > - master == INVALID_TRANSCODER); > + if (drm_WARN_ON(display->drm, > + master == INVALID_TRANSCODER)) > + master = TRANSCODER_A; > temp |= TRANS_DDI_MST_TRANSPORT_SELECT(master); > } > } else { -- Jani Nikula, Intel