| From 99e07f2cb417d9c739ff222b73d8a4040486249f Mon Sep 17 00:00:00 2001 |
| From: Will Deacon <will.deacon@arm.com> |
| Date: Tue, 9 Aug 2011 12:13:53 +0100 |
| Subject: ARM: shmobile: convert logical CPU numbers to physical numbers |
| |
| 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> |
| (cherry picked from commit f80ca52cab8f999246ed2e4daa90eb40cb810822) |
| |
| Signed-off-by: Simon Horman <horms@verge.net.au> |
| --- |
| arch/arm/mach-shmobile/smp-sh73a0.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c |
| index 3ffdbc9..be1ade7 100644 |
| --- a/arch/arm/mach-shmobile/smp-sh73a0.c |
| +++ b/arch/arm/mach-shmobile/smp-sh73a0.c |
| @@ -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)); |
| } |
| -- |
| 1.7.10.2.565.gbd578b5 |
| |