PM / devfreq: rockchip_dmc: stop monitor only when enable auto-freq

This fix the warning:
WARNING: CPU: 1 PID: 1 at kernel/workqueue.c:2934 __flush_work+0x1f8/0x220
Modules linked in:
CPU: 1 PID: 1 Comm: init Not tainted 4.19.53 #303
Hardware name: Rockchip RK3399 EVB IND LPDDR4 Board edp (Android) (DT)
pstate: 00400005 (nzcv daif +PAN -UAO)
pc : __flush_work+0x1f8/0x220
lr : __cancel_work_timer+0x12c/0x1a8
sp : ffffff800804ba20
x29: ffffff800804ba20 x28: ffffffc0f1870000
x27: 0000000000000000 x26: ffffffc0f1870000
x25: ffffff800804bb30 x24: ffffff80094e8000
x23: ffffff80080d1910 x22: 0000000000000000
x21: ffffff800933d000 x20: ffffffc0f0777350
x19: ffffff80094e85b8 x18: ffffffffffffffff
x17: 0000000000000000 x16: 0000000000000001
x15: ffffff800933da88 x14: ffffff80894ecdf7
x13: ffffff80094ece05 x12: ffffff80094ed240
x11: ffffff800935e000 x10: 0000000000000000
x9 : ffffffc00a3a0180 x8 : 0000000000000004
x7 : 0000000002487900 x6 : 0000000000000001
x5 : 0000000000000001 x4 : 0000000000000800
x3 : ffffff800933da88 x2 : 0000000000000000
x1 : 0000000000000000 x0 : ffffffc0f0777350

Call trace:
 __flush_work+0x1f8/0x220
 __cancel_work_timer+0x12c/0x1a8
 cancel_delayed_work_sync+0x10/0x18
 devfreq_monitor_stop+0x10/0x18
 rockchip_dmcfreq_system_status_notifier+0x150/0x160
 notifier_call_chain+0x50/0x90
 __blocking_notifier_call_chain+0x50/0x78
 blocking_notifier_call_chain+0x14/0x20
 rockchip_set_system_status+0xb0/0xd0
 rockchip_monitor_reboot_notifier+0x10/0x20
 notifier_call_chain+0x50/0x90
 __blocking_notifier_call_chain+0x50/0x78
 blocking_notifier_call_chain+0x14/0x20
 kernel_restart_prepare+0x1c/0x40
 kernel_restart+0x14/0x78
 __se_sys_reboot+0x1cc/0x208
 __arm64_sys_reboot+0x18/0x20
 el0_svc_common+0xbc/0x188
 el0_svc_handler+0x2c/0x80
 el0_svc+0x8/0xc
---[ end trace 4548dcc701eee1b0 ]---

Change-Id: I479d0abdfcf6aa144036983c57b0878e104cd8e0
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
This commit is contained in:
Finley Xiao
2019-10-28 20:47:55 +08:00
committed by Tao Huang
parent 70f1413e90
commit 8c07126830

View File

@@ -2775,7 +2775,8 @@ static int rockchip_dmcfreq_system_status_notifier(struct notifier_block *nb,
}
if (dmcfreq->reboot_rate && (status & SYS_STATUS_REBOOT)) {
devfreq_monitor_stop(dmcfreq->devfreq);
if (dmcfreq->auto_freq_en)
devfreq_monitor_stop(dmcfreq->devfreq);
target_rate = dmcfreq->reboot_rate;
goto next;
}