[PATCH RFT] drm/msm/dpu: enable virtual planes by default

Xilin Wu sophon at radxa.com
Fri Jun 6 05:34:06 UTC 2025


On 2025/5/14 07:30:00, Dmitry Baryshkov wrote:
> Turn on the switch and use virtual planes by default, enhancing
> utilisation of the display pipelines. It is still possible to use legacy
> implementation by using `msm.dpu_use_virtual_planes=false` kernel boot
> parameter.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at oss.qualcomm.com>
> ---
> This is being sent as an RFT for now. Please give it a test with your
> compositor of choice. X11. Weston. Sway. Wlroot. CrOS. I plan to turn
> the switch for 6.17.
> ---
>   drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 

With virtual planes enabled on qcs6490, I get a kernel Oops every time I 
plug in a mouse.

Steps to reproduce:

1. Set DisplayPort resolution to 1920x1080 (does not happen with 2560x1440)
2. Boot into plasma wayland desktop (v6.3.5) without usb mouse plugged in
3. Plug in the usb mouse

[   53.594217] hid-generic 0003:3554:F55D.0003: input: USB HID v1.11 
Mouse [Compx 2.4G Wireless Receiver] on usb-xhci-hcd.1.auto-1.3/input2
[   53.737874] Unable to handle kernel NULL pointer dereference at 
virtual address 0000000000000020
[   53.746931] Mem abort info:
[   53.749827]   ESR = 0x0000000096000004
[   53.753690]   EC = 0x25: DABT (current EL), IL = 32 bits
[   53.759159]   SET = 0, FnV = 0
[   53.762309]   EA = 0, S1PTW = 0
[   53.765556]   FSC = 0x04: level 0 translation fault
[   53.770584] Data abort info:
[   53.773564]   ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
[   53.779205]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[   53.784411]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[   53.789880] user pgtable: 4k pages, 48-bit VAs, pgdp=000000010f4fd000
[   53.796511] [0000000000000020] pgd=0000000000000000, p4d=0000000000000000
[   53.803493] Internal error: Oops: 0000000096000004 [#1]  SMP
[   53.809309] Modules linked in:
[   53.812465] CPU: 6 UID: 1000 PID: 677 Comm: kwin_wayland Tainted: G 
      W           6.15.0-next-20250528-00020-gc20b5cd31b70-dirty #16 
PREEMPTLAZY
[   53.826292] Tainted: [W]=WARN
[   53.829356] Hardware name: Radxa Dragon Q6A (DT)
[   53.834108] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS 
BTYPE=--)
[   53.841261] pc : dpu_plane_is_multirect_capable+0x60/0x80
[   53.846818] lr : dpu_assign_plane_resources+0x26c/0x3d0
[   53.852192] sp : ffff800085bf3880
[   53.855610] x29: ffff800085bf38b0 x28: 0000000000000960 x27: 
ffff000090878800
[   53.862946] x26: ffff0000c407d948 x25: ffff00009087a200 x24: 
ffff0000b9a79a80
[   53.870284] x23: ffff0000c407d960 x22: ffff00008006a080 x21: 
ffff000084153880
[   53.877623] x20: ffff800085bf38a5 x19: ffff00009087a000 x18: 
0000000000000000
[   53.884960] x17: 0000000000000000 x16: 0000000000000000 x15: 
0000004200000000
[   53.892297] x14: ffff00009087a400 x13: ffff00008006a718 x12: 
ffff000080dca080
[   53.899632] x11: ffff800085bf38a5 x10: ffff00009087a4b8 x9 : 
0000000000000000
[   53.906970] x8 : ffffd8d2d59a09c0 x7 : 0000000000000000 x6 : 
0000000000000217
[   53.914301] x5 : 0000000000000000 x4 : 0000000000000200 x3 : 
0000000000000200
[   53.921639] x2 : ffffd8d2d59a03c0 x1 : 000000000000000a x0 : 
0000000000000000
[   53.928977] Call trace:
[   53.931505]  dpu_plane_is_multirect_capable+0x60/0x80 (P)
[   53.937055]  dpu_crtc_atomic_check+0x5d0/0x680
[   53.941639]  drm_atomic_helper_check_planes+0x144/0x224
[   53.947014]  drm_atomic_helper_check+0x50/0xa4
[   53.951594]  msm_atomic_check+0xd0/0xe0
[   53.955554]  drm_atomic_check_only+0x4d0/0x910
[   53.960134]  drm_mode_atomic_ioctl+0xa14/0xdf8
[   53.964712]  drm_ioctl_kernel+0xc0/0x130
[   53.968750]  drm_ioctl+0x360/0x4e0
[   53.972259]  __arm64_sys_ioctl+0xac/0x104
[   53.976390]  invoke_syscall+0x48/0x104
[   53.980261]  el0_svc_common.constprop.0+0x40/0xe0
[   53.985109]  do_el0_svc+0x1c/0x28
[   53.988533]  el0_svc+0x34/0x104
[   53.991780]  el0t_64_sync_handler+0x10c/0x138
[   53.996265]  el0t_64_sync+0x198/0x19c
[   54.000038] Code: b9402021 370fffc1 f9401441 3707ff81 (f94010a1)
[   54.006301] ---[ end trace 0000000000000000 ]---

$ aarch64-linux-gnu-addr2line -e ~/build_cache/kernel/dragon-q6a/vmlinux 
dpu_plane_is_multirect_capable+0x60/0x80
/home/strongtz/git/linux-super/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c:932


-- 
Best regards,
Xilin Wu <sophon at radxa.com>


More information about the dri-devel mailing list