On Mon Mar 16, 2026 at 8:54 PM CET, Dmitry Baryshkov wrote:
> On Mon, Mar 16, 2026 at 10:08:47AM +0100, Luca Weiss wrote:
>> Hi Dmitry,
>> 
>> On Fri Mar 13, 2026 at 6:14 PM CET, Dmitry Baryshkov wrote:
>> > On Fri, Mar 13, 2026 at 09:33:18AM +0100, Luca Weiss wrote:
>> >> Hi Mahadevan,
>> >> 
>> >> On Thu Jan 1, 2026 at 6:04 AM CET, Mahadevan P wrote:
>> >> > On SC7280 targets, display modes with a width greater than the
>> >> > max_mixer_width (2400) are rejected during mode validation when
>> >> > merge3d is disabled. This limitation exists because, without a
>> >> > 3D merge block, two layer mixers cannot be combined(non-DSC interface),
>> >> > preventing large layers from being split across mixers. As a result,
>> >> > higher resolution modes cannot be supported.
>> >> >
>> >> > Enable merge3d support on SC7280 to allow combining streams from
>> >> > two layer mixers into a single non-DSC interface. This capability
>> >> > removes the width restriction and enables buffer sizes beyond the
>> >> > 2400-pixel limit.
>> >> >
>> >> > Fixes: 591e34a091d1 ("drm/msm/disp/dpu1: add support for display for 
>> >> > SC7280 target")
>> >> > Signed-off-by: Mahadevan P <[email protected]>
>> >> 
>> >> This patch is causing display regression on QCM6490 fairphone-fp5.
>> >> 
>> >> With this patch in 7.0-rc3 (or 6.18.16) there's just pink noise on the
>> >> screen. When reverting this patch everything becomes working again.
>> >> 
>> >> See also 
>> >> https://salsa.debian.org/Mobian-team/devices/kernels/qcom-linux/-/issues/41
>> >> 
>> >> @Dmitry: Can we revert this for later 7.0-rc, in case it's not fixed
>> >> quickly?
>> >
>> > Could you please provide the resource allocation parts of
>> > debugfs/dri/0/state for both working and non-working cases?
>> 
>> Broken (with the patch)
>
>> resource mapping:
>>         pingpong=# # 68 68 - - - - - - - - - 
>>         mixer=# - 68 68 - - - - 
>>         ctl=68 # # # - - - - 
>>         dspp=# - - - - - - - 
>>         dsc=68 - - - - - - - 
>>         cdm=# 
>>         sspp=# - - - - - - - # # # - - - - - 
>>         cwb=- - - - 
>
> I see. It tries to use two mixers with a single DSC. What about someting
> as simple as:
>
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c 
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> index 0f4921b1a892..cbb7caa194c1 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> @@ -1410,7 +1410,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;

Thanks Dmitry, this also resolves the issue!

Tested-by: Luca Weiss <[email protected]> # qcm6490-fairphone-fp5

Regards
Luca

Reply via email to