video: rockchip: mpp: rkvenc2: remove opp table when remove devfreq

rk3588_s:/sdcard # insmod rk_vcodec.ko
rk3588_s:/sdcard # rmmod rk_vcodec.ko
rk3588_s:/sdcard # insmod rk_vcodec.ko

[   31.701985][ T2028] WARNING: CPU: 7 PID: 2028 at drivers/opp/core.c:1767 dev_pm_opp_set_regulators+0x18c/0x1a4
[   31.701989][ T2028] Modules linked in: rk_vcodec(+) [last unloaded: rk_vcodec]
[   31.702002][ T2028] CPU: 7 PID: 2028 Comm: insmod Not tainted 5.10.160 #398
[   31.702005][ T2028] Hardware name: Rockchip RK3588 EVB1 LP4 V10 Board (DT)
[   31.702011][ T2028] pstate: 20400009 (nzCv daif +PAN -UAO -TCO BTYPE=--)
[   31.702015][ T2028] pc : dev_pm_opp_set_regulators+0x18c/0x1a4
[   31.702019][ T2028] lr : dev_pm_opp_set_regulators+0x30/0x1a4
[   31.702022][ T2028] sp : ffffffc00e2fb500
[   31.702026][ T2028] x29: ffffffc00e2fb500 x28: ffffffc0012d1c8f
[   31.702031][ T2028] x27: ffffffc008071dbc x26: ffffff8114e1f080
[   31.702036][ T2028] x25: 0000000000000001 x24: ffffffc0012d89c0
[   31.702040][ T2028] x23: ffffffc00e2fb558 x22: ffffff8101480810
[   31.702045][ T2028] x21: ffffff8168e6e5b0 x20: 0000000000000002
[   31.702049][ T2028] x19: ffffff816eeb2800 x18: ffffffc00be95118
[   31.702054][ T2028] x17: 6d726f6674616c70 x16: 0000000000000000
[   31.702058][ T2028] x15: 0000000000000000 x14: ffffffffffffffff
[   31.702062][ T2028] x13: 0000000000000010 x12: 00000000000002f6
[   31.702067][ T2028] x11: 0000000000000020 x10: 0101010101010101
[   31.702072][ T2028] x9 : ffffff8174c00500 x8 : ffffff816eeb2850
[   31.702076][ T2028] x7 : 736d63ff786b6f6f x6 : 0000000080645d51
[   31.702080][ T2028] x5 : 515d640000000000 x4 : 0000008000000000
[   31.702084][ T2028] x3 : 0001332500000000 x2 : 0000000000000000
[   31.702088][ T2028] x1 : ffffff816b2baac0 x0 : ffffff816eeb2800
[   31.702093][ T2028] Call trace:
[   31.702098][ T2028]  dev_pm_opp_set_regulators+0x18c/0x1a4
[   31.702152][ T2028]  rkvenc_init+0x184/0x304 [rk_vcodec]
[   31.702191][ T2028]  mpp_dev_probe+0x25c/0x444 [rk_vcodec]
[   31.702231][ T2028]  rkvenc_probe+0x1fc/0x430 [rk_vcodec]
[   31.702239][ T2028]  platform_drv_probe+0x94/0xbc
[   31.702245][ T2028]  really_probe+0x200/0x500
[   31.702249][ T2028]  driver_probe_device+0x7c/0xb8
[   31.702253][ T2028]  device_driver_attach+0x6c/0xac
[   31.702257][ T2028]  __driver_attach+0xc0/0x14c
[   31.702262][ T2028]  bus_for_each_dev+0x80/0xcc
[   31.702266][ T2028]  driver_attach+0x24/0x30
[   31.702270][ T2028]  bus_add_driver+0x10c/0x1f8
[   31.702275][ T2028]  driver_register+0x78/0x110
[   31.702279][ T2028]  __platform_driver_register+0x44/0x50
[   31.702319][ T2028]  mpp_add_driver+0x114/0x158 [rk_vcodec]
[   31.702358][ T2028]  mpp_service_probe+0x548/0x598 [rk_vcodec]
[   31.702362][ T2028]  platform_drv_probe+0x94/0xbc
[   31.702366][ T2028]  really_probe+0x200/0x500
[   31.702370][ T2028]  driver_probe_device+0x7c/0xb8
[   31.702374][ T2028]  device_driver_attach+0x6c/0xac
[   31.702378][ T2028]  __driver_attach+0xc0/0x14c
[   31.702382][ T2028]  bus_for_each_dev+0x80/0xcc
[   31.702386][ T2028]  driver_attach+0x24/0x30
[   31.702390][ T2028]  bus_add_driver+0x10c/0x1f8
[   31.702394][ T2028]  driver_register+0x78/0x110
[   31.702398][ T2028]  __platform_driver_register+0x44/0x50
[   31.702437][ T2028]  init_module+0x20/0xfe8 [rk_vcodec]
[   31.702444][ T2028]  do_one_initcall+0xe8/0x314
[   31.702451][ T2028]  do_init_module+0x4c/0x1fc
[   31.702454][ T2028]  load_module+0x2ce0/0x3494
[   31.702459][ T2028]  __arm64_sys_finit_module+0xb8/0xf4
[   31.702464][ T2028]  el0_svc_common+0xac/0x1ac
[   31.702469][ T2028]  do_el0_svc+0x1c/0x28
[   31.702475][ T2028]  el0_svc+0x10/0x1c
[   31.702478][ T2028]  el0_sync_handler+0x68/0xac
[   31.702482][ T2028]  el0_sync+0x160/0x180

Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Change-Id: Icb29c2cc989ad371ccf03bc99ddab0059ca2fd9d
This commit is contained in:
Finley Xiao
2023-06-29 19:18:00 +08:00
parent 48eed3442f
commit 47a1581e59

View File

@@ -1810,8 +1810,11 @@ static int rkvenc_devfreq_remove(struct mpp_dev *mpp)
{
struct rkvenc_dev *enc = to_rkvenc_dev(mpp);
if (enc->mdev_info)
if (enc->mdev_info) {
rockchip_system_monitor_unregister(enc->mdev_info);
enc->mdev_info = NULL;
}
rockchip_uninit_opp_table(mpp->dev, &enc->opp_info);
return 0;
}