RE: [PATCH] drm/i915/dp: Return early if dsc is required but not supported

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

 




> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Ankit
> Nautiyal
> Sent: Friday, January 3, 2025 8:44 AM
> To: intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> Cc: intel-xe@xxxxxxxxxxxxxxxxxxxxx; jani.nikula@xxxxxxxxxxxxxxx; Deak, Imre
> <imre.deak@xxxxxxxxx>
> Subject: [PATCH] drm/i915/dp: Return early if dsc is required but not
> supported
> 
> Currently, when bandwidth is insufficient for a given mode, we attempt to use
> DSC. This is indicated by a debug print, followed by a check for DSC support.
> 
> The debug message states that we are trying DSC, but DSC might not be
> supported, which can give an incorrect picture in the logs if we bail out later.
> 
> Correct the order for both DP and DP MST to:
> - Check if DSC is required and supported, and return early if DSC is not
> supported.
> - Print a debug message to indicate that DSC will be tried next.
> 
> Suggested-by: Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx>
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@xxxxxxxxx>

LGTM,
Reviewed-by: Suraj Kandpal <suraj.kandpal@xxxxxxxxx>

> ---
>  drivers/gpu/drm/i915/display/intel_dp.c     | 8 +++++---
>  drivers/gpu/drm/i915/display/intel_dp_mst.c | 7 +++++--
>  2 files changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
> b/drivers/gpu/drm/i915/display/intel_dp.c
> index 0d74adae2ec9..4fa0e0b675b0 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -2642,15 +2642,17 @@ intel_dp_compute_link_config(struct
> intel_encoder *encoder,
>  			dsc_needed = true;
>  	}
> 
> +	if (dsc_needed && !intel_dp_supports_dsc(intel_dp, connector,
> pipe_config)) {
> +		drm_dbg_kms(display->drm, "DSC required but not
> available\n");
> +		return -EINVAL;
> +	}
> +
>  	if (dsc_needed) {
>  		drm_dbg_kms(display->drm,
>  			    "Try DSC (fallback=%s, joiner=%s, force=%s)\n",
>  			    str_yes_no(ret), str_yes_no(joiner_needs_dsc),
>  			    str_yes_no(intel_dp->force_dsc_en));
> 
> -		if (!intel_dp_supports_dsc(intel_dp, connector, pipe_config))
> -			return -EINVAL;
> -
>  		if (!intel_dp_compute_config_limits(intel_dp, pipe_config,
> 
> respect_downstream_limits,
>  						    true,
> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> index fffd199999e0..0433f2ff77e1 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> @@ -633,14 +633,17 @@ static int mst_stream_compute_config(struct
> intel_encoder *encoder,
>  			dsc_needed = true;
>  	}
> 
> +	if (dsc_needed && !intel_dp_supports_dsc(intel_dp, connector,
> pipe_config)) {
> +		drm_dbg_kms(display->drm, "DSC required but not
> available\n");
> +		return -EINVAL;
> +	}
> +
>  	/* enable compression if the mode doesn't fit available BW */
>  	if (dsc_needed) {
>  		drm_dbg_kms(display->drm, "Try DSC (fallback=%s,
> joiner=%s, force=%s)\n",
>  			    str_yes_no(ret), str_yes_no(joiner_needs_dsc),
>  			    str_yes_no(intel_dp->force_dsc_en));
> 
> -		if (!intel_dp_supports_dsc(intel_dp, connector, pipe_config))
> -			return -EINVAL;
> 
>  		if (!mst_stream_compute_config_limits(intel_dp, connector,
>  						      pipe_config, true,
> --
> 2.45.2





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

  Powered by Linux