diff options
author | Ingo Molnar <mingo@kernel.org> | 2014-05-22 04:37:06 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-05-22 04:37:06 -0400 |
commit | ec6e7f4082aa0c6c4334149e74673b6ed736fb63 (patch) | |
tree | 0facf7775816261ffeeb9bb61468f9075d63cfb6 /kernel | |
parent | 65c2ce70046c779974af8b5dfc25a0df489089b5 (diff) | |
parent | a6220fc19afc07fe77cfd16f5b8e568615517091 (diff) |
Merge branch 'pm-cpuidle' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm into sched/core
Pull scheduling related CPU idle updates from Rafael J. Wysocki.
Conflicts:
kernel/sched/idle.c
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/power/suspend.c | 2 | ||||
-rw-r--r-- | kernel/sched/idle.c | 13 |
2 files changed, 6 insertions, 9 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) |
diff --git a/kernel/sched/idle.c b/kernel/sched/idle.c index 34083c9ac976..25b9423abce9 100644 --- a/kernel/sched/idle.c +++ b/kernel/sched/idle.c | |||
@@ -98,10 +98,11 @@ static void cpuidle_idle_call(void) | |||
98 | rcu_idle_enter(); | 98 | rcu_idle_enter(); |
99 | 99 | ||
100 | /* | 100 | /* |
101 | * Check if the cpuidle framework is ready, otherwise fallback | 101 | * Ask the cpuidle framework to choose a convenient idle state. |
102 | * to the default arch specific idle method | 102 | * Fall back to the default arch idle method on errors. |
103 | */ | 103 | */ |
104 | if (cpuidle_enabled(drv, dev)) { | 104 | next_state = cpuidle_select(drv, dev); |
105 | if (next_state < 0) { | ||
105 | use_default: | 106 | use_default: |
106 | /* | 107 | /* |
107 | * We can't use the cpuidle framework, let's use the default | 108 | * We can't use the cpuidle framework, let's use the default |
@@ -115,12 +116,6 @@ use_default: | |||
115 | goto exit_idle; | 116 | goto exit_idle; |
116 | } | 117 | } |
117 | 118 | ||
118 | /* | ||
119 | * Ask the governor to choose an idle state it thinks | ||
120 | * it is convenient to go to. There is *always* a | ||
121 | * convenient idle state | ||
122 | */ | ||
123 | next_state = cpuidle_select(drv, dev); | ||
124 | 119 | ||
125 | /* | 120 | /* |
126 | * The idle task must be scheduled, it is pointless to | 121 | * The idle task must be scheduled, it is pointless to |