Re: [PATCH] drm/i915/dp_mst: Disable DSC on ICL+ MST outputs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux