aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhinav Kumar <[email protected]>2022-05-13 15:59:59 -0700
committerAbhinav Kumar <[email protected]>2022-05-18 15:43:08 -0700
commite67dcecda06f279cf40b2ab696ca70305b3ba6df (patch)
treeb9c126eeeac22936a8b02971276745ed1da8acca
parent947a844bb3ebff0f4736d244d792ce129f6700d7 (diff)
drm/msm/dpu: limit writeback modes according to max_linewidth
Writeback modes were being added according to mode_config.max_width but this is assigned to double of max_mixer_width. For compositors/clients using a single SSPP, this will fail the dpu_plane's atomic check as it checks for max_linewidth. Limit writeback modes according to max_linewidth to allow even compositors/clients which use only a single SSPP to use writeback. Fixes: 77b001acdcfeb ("drm/msm/dpu: add the writeback connector layer") Reported-by: Jessica Zhang <[email protected]> Signed-off-by: Abhinav Kumar <[email protected]> Tested-by: Jessica Zhang <[email protected]> # Trogdor (SC8170) Reviewed-by: Dmitry Baryshkov <[email protected]> Patchwork: https://patchwork.freedesktop.org/patch/486176/ Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Abhinav Kumar <[email protected]>
-rw-r--r--drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
index 7620ffe55779..399115e4e217 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_writeback.c
@@ -8,8 +8,10 @@
static int dpu_wb_conn_get_modes(struct drm_connector *connector)
{
struct drm_device *dev = connector->dev;
+ struct msm_drm_private *priv = dev->dev_private;
+ struct dpu_kms *dpu_kms = to_dpu_kms(priv->kms);
- return drm_add_modes_noedid(connector, dev->mode_config.max_width,
+ return drm_add_modes_noedid(connector, dpu_kms->catalog->caps->max_linewidth,
dev->mode_config.max_height);
}