PM / devfreq: rockchip_dmc: Fix WARNING when remove static OPP

Only dynamic OPPs can be removed by dev_pm_opp_remove.

[    2.484575][    T9] ------------[ cut here ]------------
[    2.485095][    T9] WARNING: CPU: 1 PID: 9 at drivers/opp/core.c:1205 dev_pm_opp_put_opp_table+0x130/0x138
[    2.487307][    T9] Modules linked in:
[    2.488411][    T9] CPU: 1 PID: 9 Comm: kworker/u16:1 Not tainted 5.10.66 #1871
[    2.489755][    T9] Hardware name: Rockchip RK3588 EVB1 LP4 V10 Board (DT)
[    2.491020][    T9] Workqueue: events_unbound deferred_probe_work_func
[    2.492845][    T9] pstate: 20800009 (nzCv daif -PAN +UAO -TCO BTYPE=--)
[    2.494247][    T9] pc : dev_pm_opp_put_opp_table+0x130/0x138
[    2.494759][    T9] lr : dev_pm_opp_put_opp_table+0x88/0x138
[    2.494767][    T9] sp : ffffffc01220b990
[    2.496151][    T9] x29: ffffffc01220b990
[    2.497399][    T9] x28: ffffff8102cc1488
[    2.498665][    T9]
[    2.498668][    T9] x27: 0000000000000000 x26: 00000000ffffffea
[    2.498675][    T9] x25: ffffffc0118d3536 x24: ffffff8103da5810
[    2.502111][    T9] x23: ffffff8103febf00 x22: dead000000000100
[    2.502680][    T9] x21: ffffff8101058010 x20: ffffff8102cc1800
[    2.503211][    T9] x19: ffffff8102cc1878 x18: ffffffc0120b5088
[    2.503742][    T9] x17: 0000000000000000 x16: 00000000000000d8
[    2.504273][    T9] x15: 0000000000000004 x14: 0000000000003fff
[    2.504812][    T9] x13: ffffffc011bec968 x12: 0000000000000003
[    2.506346][    T9] x11: 0000000000000000 x10: ffffffc1ed335000
[    2.507322][    T9] x9 : ffffff8103febe00 x8 : ffffff8102cc1868
[    2.507853][    T9] x7 : 342e32202020205b x6 : ffffffc011fc9db8
[    2.508385][    T9] x5 : ffffffffffffffff x4 : ffffff81fee890a0
[    2.508918][    T9] x3 : 0000000000000c59 x2 : ffffff8103da5500
[    2.509454][    T9] x1 : 0000000000000000 x0 : 0000000000000000
[    2.509988][    T9] Call trace:
[    2.510269][    T9]  dev_pm_opp_put_opp_table+0x130/0x138
[    2.510746][    T9]  dev_pm_opp_remove+0xe0/0xe4
[    2.511161][    T9]  rockchip_get_freq_info+0xd4/0x294
[    2.511614][    T9]  rk3588_dmc_init+0x148/0x234
[    2.512024][    T9]  rockchip_dmcfreq_probe+0x2f0/0x1498
[    2.512489][    T9]  platform_drv_probe+0x9c/0xc4
[    2.512910][    T9]  really_probe+0x204/0x510
[    2.513331][    T9]  driver_probe_device+0x80/0xc0
[    2.513788][    T9]  __device_attach_driver+0x118/0x140
[    2.514249][    T9]  bus_for_each_drv+0x84/0xd4
[    2.514654][    T9]  __device_attach+0xc0/0x158
[    2.515059][    T9]  device_initial_probe+0x18/0x28
[    2.515486][    T9]  bus_probe_device+0x38/0xa0
[    2.515891][    T9]  deferred_probe_work_func+0x80/0xe0
[    2.516352][    T9]  process_one_work+0x1f4/0x490
[    2.516768][    T9]  worker_thread+0x324/0x4dc
[    2.517164][    T9]  kthread+0x13c/0x344
[    2.517516][    T9]  ret_from_fork+0x10/0x30

Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
Change-Id: I5638b51e1e1f651c0a6755cebf9529fe64be4419
This commit is contained in:
Finley Xiao
2022-02-09 19:50:07 +08:00
parent c572fc0487
commit 3b2f4c277f

View File

@@ -1194,7 +1194,7 @@ static __maybe_unused int rockchip_get_freq_info(struct rockchip_dmcfreq *dmcfre
break;
}
if (j == dmcfreq->freq_count)
dev_pm_opp_remove(dmcfreq->dev, rate);
dev_pm_opp_disable(dmcfreq->dev, rate);
}
for (i = 0; i < dmcfreq->freq_count; i++) {