diff options
author | Len Brown <len.brown@intel.com> | 2011-04-01 19:34:59 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2011-08-03 19:06:37 -0400 |
commit | a0bfa1373859e9d11dc92561a8667588803e42d8 (patch) | |
tree | ef5768a313ac16a211830efc3edb9ca95487cb6a /arch/arm/kernel | |
parent | 4bfc8288bc4a64529c5547d17349a2a1f4675507 (diff) |
cpuidle: stop depending on pm_idle
cpuidle users should call cpuidle_call_idle() directly
rather than via (pm_idle)() function pointer.
Architecture may choose to continue using (pm_idle)(),
but cpuidle need not depend on it:
my_arch_cpu_idle()
...
if(cpuidle_call_idle())
pm_idle();
cc: Kevin Hilman <khilman@deeprootsystems.com>
cc: Paul Mundt <lethal@linux-sh.org>
cc: x86@kernel.org
Acked-by: H. Peter Anvin <hpa@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/process.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 5e1e54197227..d7ee0d4c072d 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <linux/uaccess.h> | 30 | #include <linux/uaccess.h> |
31 | #include <linux/random.h> | 31 | #include <linux/random.h> |
32 | #include <linux/hw_breakpoint.h> | 32 | #include <linux/hw_breakpoint.h> |
33 | #include <linux/cpuidle.h> | ||
33 | 34 | ||
34 | #include <asm/cacheflush.h> | 35 | #include <asm/cacheflush.h> |
35 | #include <asm/leds.h> | 36 | #include <asm/leds.h> |
@@ -196,7 +197,8 @@ void cpu_idle(void) | |||
196 | cpu_relax(); | 197 | cpu_relax(); |
197 | } else { | 198 | } else { |
198 | stop_critical_timings(); | 199 | stop_critical_timings(); |
199 | pm_idle(); | 200 | if (cpuidle_call_idle()) |
201 | pm_idle(); | ||
200 | start_critical_timings(); | 202 | start_critical_timings(); |
201 | /* | 203 | /* |
202 | * This will eventually be removed - pm_idle | 204 | * This will eventually be removed - pm_idle |