ARM: mcpm: provide an interface to set the SMP ops at run time
authorNicolas Pitre <nicolas.pitre@linaro.org>
Tue, 9 Apr 2013 05:29:17 +0000 (01:29 -0400)
committerNicolas Pitre <nicolas.pitre@linaro.org>
Wed, 24 Apr 2013 14:37:03 +0000 (10:37 -0400)
This is cleaner than exporting the mcpm_smp_ops structure.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
Acked-by: Jon Medhurst <tixy@linaro.org>
arch/arm/common/mcpm_platsmp.c
arch/arm/include/asm/mcpm.h

index e7e3235..52b88d8 100644 (file)
@@ -76,7 +76,7 @@ static void mcpm_cpu_die(unsigned int cpu)
 
 #endif
 
-struct smp_operations __initdata mcpm_smp_ops = {
+static struct smp_operations __initdata mcpm_smp_ops = {
        .smp_init_cpus          = simple_smp_init_cpus,
        .smp_boot_secondary     = mcpm_boot_secondary,
        .smp_secondary_init     = mcpm_secondary_init,
@@ -85,3 +85,8 @@ struct smp_operations __initdata mcpm_smp_ops = {
        .cpu_die                = mcpm_cpu_die,
 #endif
 };
+
+void __init mcpm_smp_set_ops(void)
+{
+       smp_set_ops(&mcpm_smp_ops);
+}
index 3046e90..0f7b762 100644 (file)
@@ -167,6 +167,8 @@ int __mcpm_cluster_state(unsigned int cluster);
 int __init mcpm_sync_init(
        void (*power_up_setup)(unsigned int affinity_level));
 
+void __init mcpm_smp_set_ops(void);
+
 #else
 
 /*