diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-05-05 00:51:54 +0200 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-05-07 01:49:28 +0200 |
commit | a6220fc19afc07fe77cfd16f5b8e568615517091 (patch) | |
tree | 1f79cd9dc6610db3ca394dcd4f61a3b109d1069d /kernel/power | |
parent | bed4d597a0f99b380d24ab3a9da47b62cbf1ad0e (diff) | |
download | op-kernel-dev-a6220fc19afc07fe77cfd16f5b8e568615517091.zip op-kernel-dev-a6220fc19afc07fe77cfd16f5b8e568615517091.tar.gz |
PM / suspend: Always use deepest C-state in the "freeze" sleep state
If freeze_enter() is called, we want to bypass the current cpuidle
governor and always use the deepest available (that is, not disabled)
C-state, because we want to save as much energy as reasonably possible
then and runtime latency constraints don't matter at that point, since
the system is in a sleep state anyway.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Aubrey Li <aubrey.li@linux.intel.com>
Diffstat (limited to 'kernel/power')
-rw-r--r-- | kernel/power/suspend.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index 8233cd4..155721f 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c @@ -54,9 +54,11 @@ static void freeze_begin(void) static void freeze_enter(void) { + cpuidle_use_deepest_state(true); cpuidle_resume(); wait_event(suspend_freeze_wait_head, suspend_freeze_wake); cpuidle_pause(); + cpuidle_use_deepest_state(false); } void freeze_wake(void) |