From 655ee7d9dbb4bccb94a88310f5941dae6c3132ce Mon Sep 17 00:00:00 2001 From: Ken Chang Date: Thu, 24 Sep 2020 09:28:47 +0800 Subject: [PATCH] devfreq: wmark: active: set interrupt_driven Set interrupt_driven to 1 thus cancel_delayed_work_sync() won't be called in devfreq_monitor_suspend() when handling DEVFREQ_GOV_SUSPEND event. This will avoid below warning prints when runtime PM is enabled. [ 22.121071] INFO: trying to register non-static key. [ 22.126030] the code is fine but needs lockdep annotation. [ 22.131501] turning off the locking correctness validator. The backstrace: [ 9.322855] [] flush_work+0x1fc/0x208 [ 9.322858] [] __cancel_work_timer+0xa0/0x188 [ 9.322862] [] cancel_delayed_work_sync+0x24/0x30 [ 9.322867] [] devfreq_monitor_suspend+0x4c/0x80 [ 9.322871] [] devfreq_watermark_event_handler+0x3b4/0x458 [ 9.322874] [] devfreq_suspend_device+0x60/0x98 [ 9.322878] [] nvhost_module_runtime_suspend+0x64/0x160 [ 9.322883] [] pm_generic_runtime_suspend+0x3c/0x58 [ 9.322887] [] genpd_runtime_suspend+0x98/0x230 [ 9.322890] [] __rpm_callback+0x74/0xa0 [ 9.322893] [] rpm_callback+0x34/0x98 [ 9.322896] [] rpm_suspend+0x100/0x5f0 [ 9.322899] [] pm_runtime_work+0x80/0xb8 [ 9.322902] [] process_one_work+0x1e4/0x4b0 [ 9.322904] [] worker_thread+0x50/0x4c8 [ 9.322908] [] kthread+0xec/0xf0 [ 9.322911] [] ret_from_fork+0x10/0x30 Bug 3128395 Change-Id: I15116cd452a062620c01e91f71eecba7d68cde17 Signed-off-by: Ken Chang Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2418831 (cherry picked from commit b722658b31e1dc622870a9d5f38a8418ef8493ca) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2434773 Reviewed-by: automaticguardword Reviewed-by: Aaron Tian Reviewed-by: Bibek Basu Reviewed-by: mobile promotions Tested-by: mobile promotions GVS: Gerrit_Virtual_Submit --- drivers/devfreq/governor_wmark_active.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/devfreq/governor_wmark_active.c b/drivers/devfreq/governor_wmark_active.c index 73d40cb9..14d8fbb7 100644 --- a/drivers/devfreq/governor_wmark_active.c +++ b/drivers/devfreq/governor_wmark_active.c @@ -675,6 +675,7 @@ static struct devfreq_governor devfreq_watermark_active = { .name = "wmark_active", .get_target_freq = devfreq_watermark_target_freq, .event_handler = devfreq_watermark_event_handler, + .interrupt_driven = true, };