Message ID | 20230329-rfc-msm-dsc-helper-v3-5-6bec0d277a83@quicinc.com |
---|---|
State | New |
Headers | show |
Series | Introduce MSM-specific DSC helpers | expand |
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_jesszhan@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 >
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); + /* * For bonded DSI mode, the current DRM mode has * the complete width of the panel. Since, the complete
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_jesszhan@quicinc.com> --- drivers/gpu/drm/msm/dsi/dsi_host.c | 3 +++ 1 file changed, 3 insertions(+)