ARM: shmobile: convert logical CPU numbers to physical numbers
authorWill Deacon <will.deacon@arm.com>
Tue, 9 Aug 2011 11:13:53 +0000 (12:13 +0100)
committerWill Deacon <will.deacon@arm.com>
Mon, 17 Oct 2011 09:01:11 +0000 (10:01 +0100)
This patch uses the new cpu_logical_map() macro for converting logical
CPU numbers into physical numbers when dealing with the SCU in the SMP
boot path for sh73a0.

Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm/mach-shmobile/smp-sh73a0.c

index 3ffdbc9..be1ade7 100644 (file)
@@ -74,6 +74,8 @@ void __cpuinit sh73a0_secondary_init(unsigned int cpu)
 
 int __cpuinit sh73a0_boot_secondary(unsigned int cpu)
 {
+       cpu = cpu_logical_map(cpu);
+
        /* enable cache coherency */
        modify_scu_cpu_psr(0, 3 << (cpu * 8));
 
@@ -87,6 +89,8 @@ int __cpuinit sh73a0_boot_secondary(unsigned int cpu)
 
 void __init sh73a0_smp_prepare_cpus(void)
 {
+       int cpu = cpu_logical_map(0);
+
        scu_enable(scu_base_addr());
 
        /* Map the reset vector (in headsmp.S) */
@@ -94,5 +98,5 @@ void __init sh73a0_smp_prepare_cpus(void)
        __raw_writel(__pa(shmobile_secondary_vector), __io(SBAR));
 
        /* enable cache coherency on CPU0 */
-       modify_scu_cpu_psr(0, 3 << (0 * 8));
+       modify_scu_cpu_psr(0, 3 << (cpu * 8));
 }