Re: [PATCH 02/14] drm/i915/dp: Return early if DSC not supported

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

 




On 12/17/2024 4:32 PM, Jani Nikula wrote:
On Tue, 17 Dec 2024, Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx> wrote:
On Tue, 17 Dec 2024, Ankit Nautiyal <ankit.k.nautiyal@xxxxxxxxx> wrote:
Check for DSC support before computing link config with DSC.
For DP MST we are already doing the same.

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@xxxxxxxxx>
Reviewed-by: Suraj Kandpal <suraj.kandpal@xxxxxxxxx>
---
  drivers/gpu/drm/i915/display/intel_dp.c | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 908b9887f89b..dd2da9facaad 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -2375,9 +2375,6 @@ int intel_dp_dsc_compute_config(struct intel_dp *intel_dp,
  		 intel_dp_supports_fec(intel_dp, connector, pipe_config) &&
  		 !intel_dp_is_uhbr(pipe_config));
- if (!intel_dp_supports_dsc(intel_dp, connector, pipe_config))
-		return -EINVAL;
-
  	if (!intel_dp_dsc_supports_format(connector, pipe_config->output_format))
  		return -EINVAL;
@@ -2652,6 +2649,9 @@ intel_dp_compute_link_config(struct intel_encoder *encoder,
  			    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;
+
The (pre-existing) problem with this is that we debug log we fall back
to DSC, while we don't.

Maybe we should do something like this instead, both in SST and MST code:
On second thought, this can also come as a follow-up later. I don't want
to block the series with this.


Thanks Jani for the reviews and suggestions.

I will address the debug logging issue separately as suggested.

Regards,

Ankit



BR,
Jani.


--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -2644,6 +2644,11 @@ intel_dp_compute_link_config(struct intel_encoder *encoder,
  			dsc_needed = true;
  	}
+ if (dsc_needed && !intel_dp_supports_dsc(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",

BR,
Jani.

  		if (!intel_dp_compute_config_limits(intel_dp, pipe_config,
  						    respect_downstream_limits,
  						    true,



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

  Powered by Linux