Skip to content

Commit 2211e34

Browse files
Abhinav Kumarrobclark
authored andcommitted
drm/msm/dpu: limit wb modes based on max_mixer_width
As explained in [1], using max_linewidth to limit the modes does not seem to remove 4K modes on chipsets such as sm8250 where the max_linewidth actually supports 4k. This would have been alright if dual SSPP support was present but otherwise fails the per SSPP bandwidth check. The ideal way to implement this would be to filter out the modes which will exceed the bandwidth check by computing it. But this would be an exhaustive solution till we have dual SSPP support. Let's instead use max_mixer_width to limit the modes. max_mixer_width still remains 2560 on sm8250 so even if the max_linewidth is 4096, the only way 4k modes could have been supported is to have source split enabled on the SSPP. Since source split support is not enabled yet in DPU driver, enforce max_mixer_width as the upper limit on the modes. [1] https://patchwork.freedesktop.org/patch/489662/ Fixes: e67dcec ("drm/msm/dpu: limit writeback modes according to max_linewidth") Signed-off-by: Abhinav Kumar <[email protected]> Reviewed-by: Dmitry Baryshkov <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/489893/ Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Rob Clark <[email protected]>
1 parent d80c3ba commit 2211e34

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,14 @@ static int dpu_wb_conn_get_modes(struct drm_connector *connector)
1111
struct msm_drm_private *priv = dev->dev_private;
1212
struct dpu_kms *dpu_kms = to_dpu_kms(priv->kms);
1313

14-
return drm_add_modes_noedid(connector, dpu_kms->catalog->caps->max_linewidth,
14+
/*
15+
* We should ideally be limiting the modes only to the maxlinewidth but
16+
* on some chipsets this will allow even 4k modes to be added which will
17+
* fail the per SSPP bandwidth checks. So, till we have dual-SSPP support
18+
* and source split support added lets limit the modes based on max_mixer_width
19+
* as 4K modes can then be supported.
20+
*/
21+
return drm_add_modes_noedid(connector, dpu_kms->catalog->caps->max_mixer_width,
1522
dev->mode_config.max_height);
1623
}
1724

0 commit comments

Comments
 (0)