diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2012-09-05 14:36:18 +0000 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2012-09-14 11:14:59 +0200 |
commit | 7ad71b61e744e7c565eec9e7aa734b0c42d93b16 (patch) | |
tree | 9698f530932cac6db43006c11b06eda02b3a03c8 /arch/arm/mach-highbank/platsmp.c | |
parent | a62580e58065dc00430b16ced6e7a00837b8323f (diff) | |
download | blackbird-op-linux-7ad71b61e744e7c565eec9e7aa734b0c42d93b16.tar.gz blackbird-op-linux-7ad71b61e744e7c565eec9e7aa734b0c42d93b16.zip |
ARM: SoC: convert highbank to SMP operations
Convert the highbank platform to use struct smp_operations to provide
its SMP and CPU hotplug operations.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Rob Herring <rob.herring@calxeda.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/mach-highbank/platsmp.c')
-rw-r--r-- | arch/arm/mach-highbank/platsmp.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/arch/arm/mach-highbank/platsmp.c b/arch/arm/mach-highbank/platsmp.c index d01364c72b45..fa9560ec6e70 100644 --- a/arch/arm/mach-highbank/platsmp.c +++ b/arch/arm/mach-highbank/platsmp.c @@ -25,12 +25,12 @@ extern void secondary_startup(void); -void __cpuinit platform_secondary_init(unsigned int cpu) +static void __cpuinit highbank_secondary_init(unsigned int cpu) { gic_secondary_init(0); } -int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) +static int __cpuinit highbank_boot_secondary(unsigned int cpu, struct task_struct *idle) { gic_raise_softirq(cpumask_of(cpu), 0); return 0; @@ -40,7 +40,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle) * Initialise the CPU possible map early - this describes the CPUs * which may be present or become present in the system. */ -void __init smp_init_cpus(void) +static void __init highbank_smp_init_cpus(void) { unsigned int i, ncores; @@ -61,7 +61,7 @@ void __init smp_init_cpus(void) set_smp_cross_call(gic_raise_softirq); } -void __init platform_smp_prepare_cpus(unsigned int max_cpus) +static void __init highbank_smp_prepare_cpus(unsigned int max_cpus) { int i; @@ -76,3 +76,13 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus) for (i = 1; i < max_cpus; i++) highbank_set_cpu_jump(i, secondary_startup); } + +struct smp_operations highbank_smp_ops __initdata = { + .smp_init_cpus = highbank_smp_init_cpus, + .smp_prepare_cpus = highbank_smp_prepare_cpus, + .smp_secondary_init = highbank_secondary_init, + .smp_boot_secondary = highbank_boot_secondary, +#ifdef CONFIG_HOTPLUG_CPU + .cpu_die = highbank_cpu_die, +#endif +}; |