On Thu, Nov 02, 2023 at 01:59:35PM +0200, Imre Deak wrote: > Enabling DSC on ICL MST outputs is broken leading to FIFO pipe / > transcoder underruns and blank screen. On TGL+ platforms MST/DSC works - > after fixing the known issues in [1] - however to make this work on ICL > requires more work. > > So far DSC on MST probably didn't get enabled for users - due to an issue > fixed by [2] - but after fixing that, DSC could get enabled, leading to a > blank screen in ICL/MST configurations which do work atm. To prevent > this disable MST/DSC on ICL for now. > > [1] https://lore.kernel.org/all/20231030155843.2251023-1-imre.deak@xxxxxxxxx > [2] https://lore.kernel.org/all/20231030155843.2251023-31-imre.deak@xxxxxxxxx > > Cc: Stanislav Lisovskiy <stanislav.lisovskiy@xxxxxxxxx> > Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > Signed-off-by: Imre Deak <imre.deak@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_dp_mst.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c > index 82f425ef15953..2cd3bccc0e650 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c > @@ -43,6 +43,7 @@ > #include "intel_dpio_phy.h" > #include "intel_hdcp.h" > #include "intel_hotplug.h" > +#include "intel_vdsc.h" > #include "skl_scaler.h" > > static int intel_dp_mst_check_constraints(struct drm_i915_private *i915, int bpp, > @@ -297,6 +298,14 @@ static int intel_dp_mst_update_slots(struct intel_encoder *encoder, > return 0; > } > > +static bool > +intel_dp_mst_dsc_source_support(const struct intel_crtc_state *crtc_state) > +{ > + struct drm_i915_private *i915 = to_i915(crtc_state->uapi.crtc->dev); > + > + return DISPLAY_VER(i915) > 11 && intel_dsc_source_support(crtc_state); We typically say >=12 not >11. Also please include a small comment to explaing why icl is excluded so people don't have to wonder what's going on here. Apart from that Reviewed-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > +} > + > static bool > intel_dp_mst_compute_config_limits(struct intel_dp *intel_dp, > struct intel_crtc_state *crtc_state, > @@ -375,6 +384,9 @@ static int intel_dp_mst_compute_config(struct intel_encoder *encoder, > str_yes_no(ret), > str_yes_no(intel_dp->force_dsc_en)); > > + if (!intel_dp_mst_dsc_source_support(pipe_config)) > + return -EINVAL; > + > if (!intel_dp_mst_compute_config_limits(intel_dp, > pipe_config, > true, > -- > 2.39.2 -- Ville Syrjälä Intel