diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-05-04 18:51:54 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-05-06 19:49:28 -0400 |
commit | a6220fc19afc07fe77cfd16f5b8e568615517091 (patch) | |
tree | 1f79cd9dc6610db3ca394dcd4f61a3b109d1069d /kernel | |
parent | bed4d597a0f99b380d24ab3a9da47b62cbf1ad0e (diff) |
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')
-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 8233cd4047d7..155721f7f909 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c | |||
@@ -54,9 +54,11 @@ static void freeze_begin(void) | |||
54 | 54 | ||
55 | static void freeze_enter(void) | 55 | static void freeze_enter(void) |
56 | { | 56 | { |
57 | cpuidle_use_deepest_state(true); | ||
57 | cpuidle_resume(); | 58 | cpuidle_resume(); |
58 | wait_event(suspend_freeze_wait_head, suspend_freeze_wake); | 59 | wait_event(suspend_freeze_wait_head, suspend_freeze_wake); |
59 | cpuidle_pause(); | 60 | cpuidle_pause(); |
61 | cpuidle_use_deepest_state(false); | ||
60 | } | 62 | } |
61 | 63 | ||
62 | void freeze_wake(void) | 64 | void freeze_wake(void) |