diff options
author | Shawn Guo <shawn.guo@linaro.org> | 2011-09-06 14:59:40 +0800 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2011-10-31 14:26:24 +0100 |
commit | 69c31b7a6e9cd4654ed0bfc7e70b4d7076a5cdb3 (patch) | |
tree | 2f0581360d423e9d472a4c163e91babde57cd167 /arch/arm/mach-imx/hotplug.c | |
parent | 9fbbe6890c88aa332efe61d5894108dd8b932530 (diff) | |
download | op-kernel-dev-69c31b7a6e9cd4654ed0bfc7e70b4d7076a5cdb3.zip op-kernel-dev-69c31b7a6e9cd4654ed0bfc7e70b4d7076a5cdb3.tar.gz |
arm/imx6q: add smp and cpu hotplug support
It adds smp and cpu hotplug support for imx6q.
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Diffstat (limited to 'arch/arm/mach-imx/hotplug.c')
-rw-r--r-- | arch/arm/mach-imx/hotplug.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/hotplug.c b/arch/arm/mach-imx/hotplug.c new file mode 100644 index 0000000..89493ab --- /dev/null +++ b/arch/arm/mach-imx/hotplug.c @@ -0,0 +1,44 @@ +/* + * Copyright 2011 Freescale Semiconductor, Inc. + * Copyright 2011 Linaro Ltd. + * + * The code contained herein is licensed under the GNU General Public + * License. You may obtain a copy of the GNU General Public License + * Version 2 or later at the following locations: + * + * http://www.opensource.org/licenses/gpl-license.html + * http://www.gnu.org/copyleft/gpl.html + */ + +#include <linux/errno.h> +#include <asm/cacheflush.h> +#include <mach/common.h> + +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) +{ + flush_cache_all(); + imx_enable_cpu(cpu, false); + cpu_do_idle(); + + /* We should never return from idle */ + panic("cpu %d unexpectedly exit from shutdown\n", 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; +} |