On 4/4/2023 4:56 PM, Jessica Zhang wrote:
hdisplay for compressed images should be calculated as bytes_per_slice *
slice_count. Thus, use MSM DSC helper to calculate hdisplay for
dsi_timing_setup instead of directly using mode->hdisplay.

Changes in v3:
- Split from previous patch
- Initialized hdisplay as uncompressed pclk per line at the beginning of
   dsi_timing_setup as to not break dual DSI calculations

Signed-off-by: Jessica Zhang <quic_jessz...@quicinc.com>
---
  drivers/gpu/drm/msm/dsi/dsi_host.c | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c 
b/drivers/gpu/drm/msm/dsi/dsi_host.c
index 6a6218a9655f..9c33060e4c29 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_host.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
@@ -912,6 +912,9 @@ static void dsi_timing_setup(struct msm_dsi_host *msm_host, 
bool is_bonded_dsi)
DBG(""); + if (msm_host->dsc)
+               hdisplay = 
msm_dsc_get_uncompressed_pclk_per_intf(msm_host->dsc);
+

bonded-dsi with DSC is really not a tested configuration. If you move this line to before the if (is_bonded_dsi), then you will be dividing /2 on a compressed value. That wont make sense.

I would still move this back to the if (msm_host->dsc) that way, bonded_dsi first divides hdisplay/2 on an uncompressed mode->hdisplay then DSC does its math on top of that.

        /*
         * For bonded DSI mode, the current DRM mode has
         * the complete width of the panel. Since, the complete

Reply via email to