diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2011-09-08 13:15:22 +0100 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-09-14 11:14:58 +0200 |
commit | 5ac21a943e4052ef6743b09b6a06fbb683a3519d (patch) | |
tree | e47d3289d14ebe936ecf720137f0a70b6258b7d7 /arch/arm/mach-ux500/hotplug.c | |
parent | 44ea349f5b7e0b4865de9ca6b4437c746eede40c (diff) | |
download | talos-obmc-linux-5ac21a943e4052ef6743b09b6a06fbb683a3519d.tar.gz talos-obmc-linux-5ac21a943e4052ef6743b09b6a06fbb683a3519d.zip |
ARM: SoC: convert ux500 to SMP operations
Convert ux500 platforms to use struct smp_operations to provide
their SMP and CPU hotplug operations.
Cc: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: srinidhi kasagar <srinidhi.kasagar@stericsson.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/mach-ux500/hotplug.c')
-rw-r--r-- | arch/arm/mach-ux500/hotplug.c | 36 |
1 files changed, 9 insertions, 27 deletions
diff --git a/arch/arm/mach-ux500/hotplug.c b/arch/arm/mach-ux500/hotplug.c index c76f0f456f04..b8e4d9ed62d8 100644 --- a/arch/arm/mach-ux500/hotplug.c +++ b/arch/arm/mach-ux500/hotplug.c @@ -15,13 +15,20 @@ #include <asm/cacheflush.h> #include <asm/smp_plat.h> +#include <mach/setup.h> + extern volatile int pen_release; -static inline void platform_do_lowpower(unsigned int cpu) +/* + * platform-specific code to shutdown a CPU + * + * Called with IRQs disabled + */ +void __ref ux500_cpu_die(unsigned int cpu) { flush_cache_all(); - /* we put the platform to just WFI */ + /* directly enter low power state, skipping secure registers */ for (;;) { __asm__ __volatile__("dsb\n\t" "wfi\n\t" : : : "memory"); @@ -33,28 +40,3 @@ static inline void platform_do_lowpower(unsigned int cpu) } } } - -int platform_cpu_kill(unsigned int cpu) -{ - return 1; -} - -/* - * platform-specific code to shutdown a CPU - * - * Called with IRQs disabled - */ -void platform_cpu_die(unsigned int cpu) -{ - /* directly enter low power state, skipping secure registers */ - platform_do_lowpower(cpu); -} - -int platform_cpu_disable(unsigned int cpu) -{ - /* - * we don't allow CPU 0 to be shutdown (it is still too special - * e.g. clock tick interrupts) - */ - return cpu == 0 ? -EPERM : 0; -} |