[BUG] Rockchip VOP2 Mainline Resume from Suspend
Andy Yan
andy.yan at rock-chips.com
Thu Apr 13 04:10:29 PDT 2023
Hi Morgan:
Some information hope can help you.
On 4/13/23 06:25, Chris Morgan wrote:
> I noticed a bug on the Rockchip mainline VOP2 driver where it fails to
> resume from suspend.
>
> I dumped the registers and noticed the following were changed between
> working (pre-suspend) and non working (post-suspend) states.
>
> pre: 0xfe0400b0: 0x00000030
> post: 0xfe0400b0: 0x00000010
>
> pre: 0xfe0400bc: 0x000003CD
> post: 0xfe0400bc: 0x000003ED
>
> pre:0xfe0400cc: 0x000000E3
> post: 0xfe0400cc: 0x000000EF
registers at offset 0xb0/bc/cc are interrupts status registers , so it
has no effect for your case.
>
> pre: 0xfe04181c: 0x00000280
> pre: 0xfe041820: 0x01DF027F
> pre: 0xfe041824: 0x01DF027F
> post: 0xfe04181c: 0x00000000
> post: 0xfe041820: 0x00000000
> post: 0xfe041824: 0x00000000
>
> pre: 0xfe041830: 0x00000044
> pre: 0xfe041834: 0x00000000
> post: 0xfe041830: 0x00000000
> post: 0xfe041834: 0x10001000
registers at offset 0x1800(1c/20/24/30/34) control the display src/dst
rectangle , so this are what matters.
This register should be set in function vop2_plane_atomic_update.
Maybe you can enable drm_debug.: echo 0xff >
/sys/module/drm/parameters/debug
and trace the function call before and after suspend.
>
> What's interesting is that if I write the pre-suspend values back the
> display starts to work again. I assume this means something is missing
> from the driver that needs to catch a resume from suspend scenario?
>
> Let me know if there's any more I can do to help debug this further.
> I'm not very knowledgeable on the DRM side of the house, but hopefully
> this is enough information to find the issue.
> Thank you.
More information about the Linux-rockchip
mailing list