summary refs log tree commit diff
diff options
context:
space:
mode:
authorLiviu Dudau <Liviu.Dudau@arm.com>2013-03-26 11:02:51 +0000
committerCatalin Marinas <catalin.marinas@arm.com>2013-03-26 11:58:10 +0000
commita9a193ffe51d036a7c2d30d7fbdb66498c688237 (patch)
tree079f6104a5075dd894370905db7b089475c89db5
parent0359b0e2d0bbd28289c38ebe779b5f1c61f8ccc8 (diff)
downloadlinux-a9a193ffe51d036a7c2d30d7fbdb66498c688237.tar.gz
arm64: psci: Use the MPIDR values from cpu_logical_map for cpu ids.
With the (re)introduction of cpu_logical_map in arm64 we switch to
the use of MPIDR values to identify CPUs. Update the psci code to
do that.

Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
-rw-r--r--arch/arm64/kernel/smp_psci.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm64/kernel/smp_psci.c b/arch/arm64/kernel/smp_psci.c
index 112091684c22..0c533301be77 100644
--- a/arch/arm64/kernel/smp_psci.c
+++ b/arch/arm64/kernel/smp_psci.c
@@ -21,6 +21,7 @@
 #include <linux/smp.h>
 
 #include <asm/psci.h>
+#include <asm/smp_plat.h>
 
 static int __init smp_psci_init_cpu(struct device_node *dn, int cpu)
 {
@@ -36,7 +37,7 @@ static int __init smp_psci_prepare_cpu(int cpu)
 		return -ENODEV;
 	}
 
-	err = psci_ops.cpu_on(cpu, __pa(secondary_holding_pen));
+	err = psci_ops.cpu_on(cpu_logical_map(cpu), __pa(secondary_holding_pen));
 	if (err) {
 		pr_err("psci: failed to boot CPU%d (%d)\n", cpu, err);
 		return err;
@@ -47,6 +48,6 @@ static int __init smp_psci_prepare_cpu(int cpu)
 
 const struct smp_enable_ops smp_psci_ops __initconst = {
 	.name		= "psci",
-	.init_cpu 	= smp_psci_init_cpu,
+	.init_cpu	= smp_psci_init_cpu,
 	.prepare_cpu	= smp_psci_prepare_cpu,
 };