aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Herring <rob.herring@calxeda.com>2013-01-31 13:26:29 -0600
committerRob Herring <rob.herring@calxeda.com>2013-01-31 13:54:16 -0600
commitc7d5b93e9834f0e6cf21828a6fbf45ac440cf364 (patch)
treef91200d933288e73c7b1b9a04962880a02563235
parentARM: scu: add empty scu_enable for !CONFIG_SMP (diff)
downloadlinux-dev-c7d5b93e9834f0e6cf21828a6fbf45ac440cf364.tar.xz
linux-dev-c7d5b93e9834f0e6cf21828a6fbf45ac440cf364.zip
ARM: scu: mask cluster id from cpu_logical_map
With commit a0ae0240 (ARM: kernel: add device tree init map function), the cpu id value may include the cluster id and is no longer 0-3, so we need to mask it in scu_power_mode to get the local cpu number. Since we are only dealing with the cpu we are running on, the cluster id should not ever be needed. Signed-off-by: Rob Herring <rob.herring@calxeda.com>
-rw-r--r--arch/arm/kernel/smp_scu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/kernel/smp_scu.c b/arch/arm/kernel/smp_scu.c
index b9f015e843d8..45eac87ed66a 100644
--- a/arch/arm/kernel/smp_scu.c
+++ b/arch/arm/kernel/smp_scu.c
@@ -75,7 +75,7 @@ void scu_enable(void __iomem *scu_base)
int scu_power_mode(void __iomem *scu_base, unsigned int mode)
{
unsigned int val;
- int cpu = cpu_logical_map(smp_processor_id());
+ int cpu = MPIDR_AFFINITY_LEVEL(cpu_logical_map(smp_processor_id()), 0);
if (mode > 3 || mode == 1 || cpu > 3)
return -EINVAL;