diff options
author | Magnus Damm <damm@opensource.se> | 2013-07-24 03:27:39 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-07-25 20:19:54 -0400 |
commit | 5489cde560f2b13dc9fb34e2d7dfd09a69fa21b1 (patch) | |
tree | ff3916e41a915eb5be73f1db413588bef850d795 | |
parent | cfa66a81621d0e85ac03c0de25adc7edd7f2649e (diff) |
ARM: shmobile: sh73a0: Rely on DT for SMP CPU info
Remove sh73a0 specific ->smp_init_cpus() callback and
instead of relying on shmobile_smp_init_cpus() simply
use DT for CPU core information.
This assumes that DT_MACHINE_START is used which is
the case when AG5EVM and Kota2 are removed.
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
-rw-r--r-- | arch/arm/mach-shmobile/smp-sh73a0.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c index d613113a04bd..1b3dc7c1e87e 100644 --- a/arch/arm/mach-shmobile/smp-sh73a0.c +++ b/arch/arm/mach-shmobile/smp-sh73a0.c | |||
@@ -62,6 +62,8 @@ static int __cpuinit sh73a0_boot_secondary(unsigned int cpu, struct task_struct | |||
62 | 62 | ||
63 | static void __init sh73a0_smp_prepare_cpus(unsigned int max_cpus) | 63 | static void __init sh73a0_smp_prepare_cpus(unsigned int max_cpus) |
64 | { | 64 | { |
65 | /* setup sh73a0 specific SCU base */ | ||
66 | shmobile_scu_base = IOMEM(SH73A0_SCU_BASE); | ||
65 | scu_enable(shmobile_scu_base); | 67 | scu_enable(shmobile_scu_base); |
66 | 68 | ||
67 | /* Map the reset vector (in headsmp-scu.S, headsmp.S) */ | 69 | /* Map the reset vector (in headsmp-scu.S, headsmp.S) */ |
@@ -74,14 +76,6 @@ static void __init sh73a0_smp_prepare_cpus(unsigned int max_cpus) | |||
74 | scu_power_mode(shmobile_scu_base, SCU_PM_NORMAL); | 76 | scu_power_mode(shmobile_scu_base, SCU_PM_NORMAL); |
75 | } | 77 | } |
76 | 78 | ||
77 | static void __init sh73a0_smp_init_cpus(void) | ||
78 | { | ||
79 | /* setup sh73a0 specific SCU base */ | ||
80 | shmobile_scu_base = IOMEM(SH73A0_SCU_BASE); | ||
81 | |||
82 | shmobile_smp_init_cpus(scu_get_core_count(shmobile_scu_base)); | ||
83 | } | ||
84 | |||
85 | #ifdef CONFIG_HOTPLUG_CPU | 79 | #ifdef CONFIG_HOTPLUG_CPU |
86 | static int sh73a0_cpu_kill(unsigned int cpu) | 80 | static int sh73a0_cpu_kill(unsigned int cpu) |
87 | { | 81 | { |
@@ -120,7 +114,6 @@ static int sh73a0_cpu_disable(unsigned int cpu) | |||
120 | #endif /* CONFIG_HOTPLUG_CPU */ | 114 | #endif /* CONFIG_HOTPLUG_CPU */ |
121 | 115 | ||
122 | struct smp_operations sh73a0_smp_ops __initdata = { | 116 | struct smp_operations sh73a0_smp_ops __initdata = { |
123 | .smp_init_cpus = sh73a0_smp_init_cpus, | ||
124 | .smp_prepare_cpus = sh73a0_smp_prepare_cpus, | 117 | .smp_prepare_cpus = sh73a0_smp_prepare_cpus, |
125 | .smp_boot_secondary = sh73a0_boot_secondary, | 118 | .smp_boot_secondary = sh73a0_boot_secondary, |
126 | #ifdef CONFIG_HOTPLUG_CPU | 119 | #ifdef CONFIG_HOTPLUG_CPU |