Revert "cpuidle: governors: qcom-lpm: Do not disable CPUidle during suspend"
This reverts commit 7dcee2dc40.
Delayed core wakeup mess up the cluster genpd sd counter post
late suspend phase. Disallow cpuidle during suspend.
Change-Id: I8f1a06214ee7a05d38c2941550877ae70abcf15c
Signed-off-by: Raghavendra Kakarla <quic_rkakarla@quicinc.com>
This commit is contained in:
parent
465c6c6a12
commit
b700529dba
1 changed files with 13 additions and 2 deletions
|
|
@ -3,7 +3,7 @@
|
|||
* Copyright (C) 2006-2007 Adam Belay <abelay@novell.com>
|
||||
* Copyright (C) 2009 Intel Corporation
|
||||
* Copyright (c) 2012-2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
* Copyright (c) 2022-2024, Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/cpu.h>
|
||||
|
|
@ -67,6 +67,9 @@ static bool lpm_disallowed(s64 sleep_ns, int cpu)
|
|||
uint64_t bias_time = 0;
|
||||
#endif
|
||||
|
||||
if (suspend_in_progress)
|
||||
return true;
|
||||
|
||||
if (!check_cpu_isactive(cpu))
|
||||
return false;
|
||||
|
||||
|
|
@ -801,14 +804,22 @@ static void lpm_disable_device(struct cpuidle_driver *drv,
|
|||
static void qcom_lpm_suspend_trace(void *unused, const char *action,
|
||||
int event, bool start)
|
||||
{
|
||||
int cpu;
|
||||
|
||||
if (start && !strcmp("dpm_suspend_late", action)) {
|
||||
suspend_in_progress = true;
|
||||
|
||||
for_each_online_cpu(cpu)
|
||||
wake_up_if_idle(cpu);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!start && !strcmp("dpm_resume_early", action))
|
||||
if (!start && !strcmp("dpm_resume_early", action)) {
|
||||
suspend_in_progress = false;
|
||||
|
||||
for_each_online_cpu(cpu)
|
||||
wake_up_if_idle(cpu);
|
||||
}
|
||||
}
|
||||
|
||||
static struct cpuidle_governor lpm_governor = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue