diff options
author | Simon Horman <horms+renesas@verge.net.au> | 2013-07-24 04:11:46 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2013-07-30 00:28:07 -0400 |
commit | afad20105a58c06407ad9ad85c1cd9ca79d99e00 (patch) | |
tree | 63bb4be5f3cdca91621fbe7c3433a0752811e80d | |
parent | 7ebbb4ae6f2d6242178d332c67ad49772f9fe88d (diff) |
ARM: shmobile: r8a7779: Rely on DT for SMP CPU info
Remove r8a7779 specific ->smp_init_cpus() callback and
instead of relying on shmobile_smp_init_cpus() simply
use DT for CPU core information.
Based on work for the sh73a0 by Magnus Damm.
Acked-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
-rw-r--r-- | arch/arm/mach-shmobile/smp-r8a7779.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/arch/arm/mach-shmobile/smp-r8a7779.c b/arch/arm/mach-shmobile/smp-r8a7779.c index 526cfaae81c1..bb3adae7de0f 100644 --- a/arch/arm/mach-shmobile/smp-r8a7779.c +++ b/arch/arm/mach-shmobile/smp-r8a7779.c | |||
@@ -99,6 +99,9 @@ static int __cpuinit r8a7779_boot_secondary(unsigned int cpu, struct task_struct | |||
99 | 99 | ||
100 | static void __init r8a7779_smp_prepare_cpus(unsigned int max_cpus) | 100 | static void __init r8a7779_smp_prepare_cpus(unsigned int max_cpus) |
101 | { | 101 | { |
102 | |||
103 | /* setup r8a7779 specific SCU base */ | ||
104 | shmobile_scu_base = IOMEM(R8A7779_SCU_BASE); | ||
102 | scu_enable(shmobile_scu_base); | 105 | scu_enable(shmobile_scu_base); |
103 | 106 | ||
104 | /* Map the reset vector (in headsmp-scu.S, headsmp.S) */ | 107 | /* Map the reset vector (in headsmp-scu.S, headsmp.S) */ |
@@ -117,14 +120,6 @@ static void __init r8a7779_smp_prepare_cpus(unsigned int max_cpus) | |||
117 | r8a7779_platform_cpu_kill(3); | 120 | r8a7779_platform_cpu_kill(3); |
118 | } | 121 | } |
119 | 122 | ||
120 | static void __init r8a7779_smp_init_cpus(void) | ||
121 | { | ||
122 | /* setup r8a7779 specific SCU base */ | ||
123 | shmobile_scu_base = IOMEM(R8A7779_SCU_BASE); | ||
124 | |||
125 | shmobile_smp_init_cpus(scu_get_core_count(shmobile_scu_base)); | ||
126 | } | ||
127 | |||
128 | #ifdef CONFIG_HOTPLUG_CPU | 123 | #ifdef CONFIG_HOTPLUG_CPU |
129 | static int r8a7779_scu_psr_core_disabled(int cpu) | 124 | static int r8a7779_scu_psr_core_disabled(int cpu) |
130 | { | 125 | { |
@@ -175,7 +170,6 @@ static int r8a7779_cpu_disable(unsigned int cpu) | |||
175 | #endif /* CONFIG_HOTPLUG_CPU */ | 170 | #endif /* CONFIG_HOTPLUG_CPU */ |
176 | 171 | ||
177 | struct smp_operations r8a7779_smp_ops __initdata = { | 172 | struct smp_operations r8a7779_smp_ops __initdata = { |
178 | .smp_init_cpus = r8a7779_smp_init_cpus, | ||
179 | .smp_prepare_cpus = r8a7779_smp_prepare_cpus, | 173 | .smp_prepare_cpus = r8a7779_smp_prepare_cpus, |
180 | .smp_boot_secondary = r8a7779_boot_secondary, | 174 | .smp_boot_secondary = r8a7779_boot_secondary, |
181 | #ifdef CONFIG_HOTPLUG_CPU | 175 | #ifdef CONFIG_HOTPLUG_CPU |