rockchip_drm_vop2 suspend resume issue

Köry Maincent kory.maincent at bootlin.com
Fri Jan 27 07:29:09 PST 2023


Hello,

I got an issue with the rockchip_drm_vop2 driver. It is not working well after
a suspend to ram/resume process. The plane and crtc seems ok, modetest query
does not show any differences, but then I send the test image with modetest
after the wakeup it does not work. The DSI clock is toggling therefore it seems
that no or wrong data is sent. The vblank interrupt also seems to be generated. 
If I unload an load again the panel module it worked again.
I am continuing the investigation. Do you have an idea of where the issue could
come from?

Also I figured out I got a NULL pointer dereference when unloading it as a
module. I don't think it is related but I just wanted to report it.

# rmmod rockchipdrm.ko 
[   76.014796] Unable to handle kernel NULL pointer dereference at virtual
address 0000000000000008 [   76.015614] Mem abort info:
[   76.015883]   ESR = 0x0000000096000005
[   76.016225]   EC = 0x25: DABT (current EL), IL = 32 bits
[   76.016735]   SET = 0, FnV = 0
[   76.017032]   EA = 0, S1PTW = 0
[   76.017321]   FSC = 0x05: level 1 translation fault
[   76.017791] Data abort info:
[   76.018070]   ISV = 0, ISS = 0x00000005
[   76.018421]   CM = 0, WnR = 0
[   76.018714] user pgtable: 4k pages, 39-bit VAs, pgdp=0000000006bb5000
[   76.019304] [0000000000000008] pgd=0000000000000000, p4d=0000000000000000,
pud=0000000000000000 [   76.020151] Internal error: Oops: 0000000096000005 [#1]
SMP [   76.020680] Modules linked in: rockchipdrm(-) dw_mipi_dsi
[   76.021195] CPU: 1 PID: 365 Comm: rmmod Not tainted 6.1.8+ #11
[   76.021727] Hardware name: Unfolded Circle Remote Two rev1 (DT)
[   76.022259] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   76.022881] pc : mipi_dsi_detach+0x10/0x44
[   76.023261] lr : mipi_dsi_remove_device_fn+0x24/0x40
[   76.023709] sp : ffffffc00a7b3b20
[   76.024005] x29: ffffffc00a7b3b20 x28: ffffff8005716ac0 x27: 0000000000000000
[   76.024644] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000000
[   76.025282] x23: 0000000000000000 x22: ffffffc000b94420 x21: ffffffc008661bd0
[   76.025924] x20: 0000000000000000 x19: ffffff80056d5000 x18: 0000000000000000
[   76.026561] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
[   76.027199] x14: 0000000000000000 x13: 36343520696e6966 x12: 5f6d72645f706968
[   76.027836] x11: 0000000000000000 x10: 0000000000000000 x9 : ffffffc008661bf4
[   76.028472] x8 : 0101010101010101 x7 : 7f7f7f7f7f7f7f7f x6 : 736d47ff6364626d
[   76.029110] x5 : 0000008000000000 x4 : 0000000000000000 x3 : ffffff8002d20f00
[   76.029747] x2 : 0000000000000001 x1 : ffffff80056d4ff8 x0 : 0000000000000000
[   76.030388] Call trace:
[   76.030615]  mipi_dsi_detach+0x10/0x44
[   76.030961]  device_for_each_child+0x68/0xb8
[   76.031351]  mipi_dsi_host_unregister+0x40/0x78
[   76.031760]  dw_mipi_dsi_remove+0x24/0x50 [dw_mipi_dsi]
[   76.032243]  dw_mipi_dsi_rockchip_remove+0x20/0x30 [rockchipdrm]
[   76.032804]  platform_remove+0x30/0x60
[   76.033146]  device_remove+0x54/0x7c
[   76.033472]  device_release_driver_internal+0x94/0x150
[   76.033933]  driver_detach+0xf8/0x104
[   76.034265]  bus_remove_driver+0xbc/0xe8
[   76.034620]  driver_unregister+0x58/0x5c
[   76.034975]  platform_unregister_drivers+0x84/0x88
[   76.035406]  rockchip_drm_fini+0x60/0x10f8 [rockchipdrm]
[   76.035899]  __arm64_sys_delete_module+0x214/0x250
[   76.036334]  invoke_syscall+0x84/0x11c
[   76.036677]  el0_svc_common.constprop.0+0xc0/0xec
[   76.037099]  do_el0_svc+0x9c/0xc4
[   76.037401]  el0_svc+0x2c/0x54
[   76.037684]  el0t_64_sync_handler+0x94/0x100
[   76.038074]  el0t_64_sync+0x190/0x194
[   76.038415] Code: aa1e03e9 d503201f aa0003e1 f9400000 (f9400402) 
[   76.038961] ---[ end trace 0000000000000000 ]---
Segmentation fault

Regards,

-- 
Köry Maincent, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com



More information about the Linux-rockchip mailing list