]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/msm/dpu: don't try using 2 LMs if only one DSC is available
authorDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Tue, 17 Mar 2026 15:30:05 +0000 (17:30 +0200)
committerDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Wed, 25 Mar 2026 06:06:09 +0000 (08:06 +0200)
Current topology code will try using 2 LMs with just one DSC, which
breaks cases like SC7280 / Fairphone5. Forbid using 2 LMs split in such
a case.

Fixes: 1ce69c265a53 ("drm/msm/dpu: move resource allocation to CRTC")
Reported-by: Luca Weiss <luca.weiss@fairphone.com>
Closes: https://lore.kernel.org/r/DH1IKLU0YZYU.2SW4WYO7H3H4R@fairphone.com/
Tested-by: Luca Weiss <luca.weiss@fairphone.com> # qcm6490-fairphone-fp5
Patchwork: https://patchwork.freedesktop.org/patch/712386/
Link: https://lore.kernel.org/r/20260317-fix-3d-dsc-v1-1-88b54f62f659@oss.qualcomm.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c

index 97aca969337fb39ab17c36ef440e280c1d2e4f79..103cdbb389681a604421178eae05ea52ba10d62f 100644 (file)
@@ -1406,7 +1406,8 @@ static struct msm_display_topology dpu_crtc_get_topology(
                topology.num_lm = 2;
        else if (topology.num_dsc == 2)
                topology.num_lm = 2;
-       else if (dpu_kms->catalog->caps->has_3d_merge)
+       else if (dpu_kms->catalog->caps->has_3d_merge &&
+                topology.num_dsc == 0)
                topology.num_lm = (mode->hdisplay > MAX_HDISPLAY_SPLIT) ? 2 : 1;
        else
                topology.num_lm = 1;