ARM: 7847/1: mcpm: Factor out logical-to-physical CPU translation
authorDave Martin <dave.martin@linaro.org>
Tue, 1 Oct 2013 18:57:28 +0000 (19:57 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 29 Oct 2013 11:06:34 +0000 (11:06 +0000)
This patch factors the logical-to-physical CPU translation out of
mcpm_boot_secondary(), so that it can be reused elsewhere.

Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/common/mcpm_platsmp.c

index 1bc34c7..c0c3cd7 100644 (file)
 #include <asm/smp.h>
 #include <asm/smp_plat.h>
 
+static void cpu_to_pcpu(unsigned int cpu,
+                       unsigned int *pcpu, unsigned int *pcluster)
+{
+       unsigned int mpidr;
+
+       mpidr = cpu_logical_map(cpu);
+       *pcpu = MPIDR_AFFINITY_LEVEL(mpidr, 0);
+       *pcluster = MPIDR_AFFINITY_LEVEL(mpidr, 1);
+}
+
 static int mcpm_boot_secondary(unsigned int cpu, struct task_struct *idle)
 {
-       unsigned int mpidr, pcpu, pcluster, ret;
+       unsigned int pcpu, pcluster, ret;
        extern void secondary_startup(void);
 
-       mpidr = cpu_logical_map(cpu);
-       pcpu = MPIDR_AFFINITY_LEVEL(mpidr, 0);
-       pcluster = MPIDR_AFFINITY_LEVEL(mpidr, 1);
+       cpu_to_pcpu(cpu, &pcpu, &pcluster);
+
        pr_debug("%s: logical CPU %d is physical CPU %d cluster %d\n",
                 __func__, cpu, pcpu, pcluster);