]> xenbits.xensource.com Git - people/aperard/linux.git/commitdiff
drm/msm/dpu: Only enable DSC_MODE_MULTIPLEX if dsc_merge is enabled
authorMarijn Suijten <marijn.suijten@somainline.org>
Sun, 4 Feb 2024 17:45:27 +0000 (18:45 +0100)
committerSasha Levin <sashal@kernel.org>
Tue, 26 Mar 2024 22:20:47 +0000 (18:20 -0400)
[ Upstream commit 06267d22f9ee6fd34150b6dcdb2fa6983e1a85bc ]

When the topology calls for two interfaces on the current fixed topology
of 2 DSC blocks, or uses 1 DSC block for a single interface (e.g. SC7280
with only one DSC block), there should be no merging of DSC output.

This is already represented by the return value of
dpu_encoder_use_dsc_merge(), but not yet used to correctly configure
this flag.

Fixes: 58dca9810749 ("drm/msm/disp/dpu1: Add support for DSC in encoder")
Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/577067/
Link: https://lore.kernel.org/r/20240204-dpu-dsc-multiplex-v1-1-080963233c52@somainline.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c

index 4bdde5cb23aae972b6156b3b62869302579159ea..3632f0768aa9ef32e8819c7e1e4bff05d3c81411 100644 (file)
@@ -1871,7 +1871,9 @@ static void dpu_encoder_prep_dsc(struct dpu_encoder_virt *dpu_enc,
        dsc_common_mode = 0;
        pic_width = dsc->pic_width;
 
-       dsc_common_mode = DSC_MODE_MULTIPLEX | DSC_MODE_SPLIT_PANEL;
+       dsc_common_mode = DSC_MODE_SPLIT_PANEL;
+       if (dpu_encoder_use_dsc_merge(enc_master->parent))
+               dsc_common_mode |= DSC_MODE_MULTIPLEX;
        if (enc_master->intf_mode == INTF_MODE_VIDEO)
                dsc_common_mode |= DSC_MODE_VIDEO;