drm/rockchip: vop2: Avoid use regmap_reinit_cache at runtime
authorAndy Yan <andy.yan@rock-chips.com>
Sun, 17 Dec 2023 08:44:15 +0000 (16:44 +0800)
committerHeiko Stuebner <heiko@sntech.de>
Sun, 24 Dec 2023 23:46:52 +0000 (00:46 +0100)
commit3ee348eb36f14e9303a7e9757efb91b0bbf3f7a9
tree4d5575cdf4c3de12989b3ddf29aa77bfd628a68d
parent971740a4c3ac2692a8adb958d5f810c47f07e9b5
drm/rockchip: vop2: Avoid use regmap_reinit_cache at runtime

Marek Report a possible irq lock inversion dependency warning when
commit 81a06f1d02e5 ("Revert "drm/rockchip: vop2: Use regcache_sync()
to fix suspend/resume"") lands linux-next.

I can reproduce this warning with:
CONFIG_PROVE_LOCKING=y
CONFIG_DEBUG_LOCKDEP=y

It seems than when use regmap_reinit_cache at runtime whith Mark's
commit 3d59c22bbb8d ("drm/rockchip: vop2: Convert to use maple tree
register cache"), it will trigger a possible irq lock inversion dependency
warning.

One solution is switch back to REGCACHE_RBTREE, but it seems that
REGCACHE_MAPLE is the future, so I avoid using regmap_reinit_cache,
and drop all the regcache when vop is disabled, then we get a fresh
start at next enbable time.

Fixes: 81a06f1d02e5 ("Revert "drm/rockchip: vop2: Use regcache_sync() to fix suspend/resume"")
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Closes: https://lore.kernel.org/all/98a9f15d-30ac-47bf-9b93-3aa2c9900f7b@samsung.com/
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
[dropped the large kernel log of the lockdep report from the message]
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20231217084415.2373043-1-andyshrk@163.com
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c