diff options
author | Nicolas Pitre <nicolas.pitre@linaro.org> | 2011-08-02 12:22:48 -0400 |
---|---|---|
committer | Nicolas Pitre <nico@fluxnic.net> | 2012-01-20 18:55:10 -0500 |
commit | 71e256c54d67f55536bae184bb579c682714a95a (patch) | |
tree | be8a4833c202a3b5597aebd8dd82073832c2c239 /arch | |
parent | c9dfafbaca0b66a6665242d019b3b9c5be056fcf (diff) | |
download | linux-71e256c54d67f55536bae184bb579c682714a95a.tar.gz linux-71e256c54d67f55536bae184bb579c682714a95a.tar.bz2 linux-71e256c54d67f55536bae184bb579c682714a95a.zip |
ARM: mach-clps711x: move special idle code out of line
... and hook it to arm_pm_idle.
Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-clps711x/common.c | 16 | ||||
-rw-r--r-- | arch/arm/mach-clps711x/include/mach/system.h | 5 |
2 files changed, 17 insertions, 4 deletions
diff --git a/arch/arm/mach-clps711x/common.c b/arch/arm/mach-clps711x/common.c index ab1711b9b4d6..8736c1acc166 100644 --- a/arch/arm/mach-clps711x/common.c +++ b/arch/arm/mach-clps711x/common.c @@ -225,3 +225,19 @@ void clps711x_restart(char mode, const char *cmd) { soft_restart(0); } + +static void clps711x_idle(void) +{ + clps_writel(1, HALT); + __asm__ __volatile__( + "mov r0, r0\n\ + mov r0, r0"); +} + +static int __init clps711x_idle_init(void) +{ + arm_pm_idle = clps711x_idle; + return 0; +} + +arch_initcall(clps711x_idle_init); diff --git a/arch/arm/mach-clps711x/include/mach/system.h b/arch/arm/mach-clps711x/include/mach/system.h index 23d6ef8c84da..0e74e1e9cc24 100644 --- a/arch/arm/mach-clps711x/include/mach/system.h +++ b/arch/arm/mach-clps711x/include/mach/system.h @@ -26,10 +26,7 @@ static inline void arch_idle(void) { - clps_writel(1, HALT); - __asm__ __volatile__( - "mov r0, r0\n\ - mov r0, r0"); + cpu_do_idle(); } #endif |