Re: [PATCH] drm/i915/vdsc: Use the DSC config tables for DSI panels

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

 




On 2/27/2025 4:56 PM, Suraj Kandpal wrote:
Some DSI panel vendors end up hardcoding PPS params because of which
it does not listen to the params sent from the source. We use the
default config tables for DSI panels when using DSC 1.1 rather than
calculate our own rc parameters.

--v2
-Use intel_crtc_has_type [Jani]

--v3
-Add Signed-off-by from William too [Ankit]

Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13719
Signed-off-by: Suraj Kandpal <suraj.kandpal@xxxxxxxxx>
Signed-off-by: William Tseng <william.tseng@xxxxxxxxx>
---
  drivers/gpu/drm/i915/display/intel_vdsc.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_vdsc.c b/drivers/gpu/drm/i915/display/intel_vdsc.c
index 6e7151346382..affe9913f1ee 100644
--- a/drivers/gpu/drm/i915/display/intel_vdsc.c
+++ b/drivers/gpu/drm/i915/display/intel_vdsc.c
@@ -320,7 +320,9 @@ int intel_dsc_compute_params(struct intel_crtc_state *pipe_config)
  	 * upto uncompressed bpp-1, hence add calculations for all the rc
  	 * parameters
  	 */
-	if (DISPLAY_VER(dev_priv) >= 13) {
+	if (DISPLAY_VER(dev_priv) >= 13 &&
+	    (vdsc_cfg->dsc_version_minor != 1 ||
+	     intel_crtc_has_type(pipe_config, INTEL_OUTPUT_DSI))) {

This should be !intel_crtc_has_type(pipe_config, INTEL_OUTPUT_DSI)

I think it would be better to use a function for special handling for DSI panel with DSC1.1.

(I am not very sure what should be an appropriate name for this but just to give an example)

bool is_mipi_dsi_dsc_1_1()
{
	return vdsc_cfg->dsc_version_minor == 1 &&
		   intel_crtc_has_type(pipe_config, INTEL_OUTPUT_DSI);
}

The condition will then become:

if (DISPLAY_VER(dev_priv) >= 13 && !is_mipi_dsi_dsc_1_1())
	calculate_rc_params(vdsc_cfg);


With this we also need to document about why we are not using calculate_rc_params for MIPI DSI with DSC1.1 in comment above the function.

Regards,
Ankit

  		calculate_rc_params(vdsc_cfg);
  	} else {
  		if ((compressed_bpp == 8 ||



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

  Powered by Linux