summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mvebu/common.h
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2013-06-05 09:04:54 +0200
committerJason Cooper <jason@lakedaemon.net>2013-06-13 19:48:13 +0200
commitb21dcafea36dd6249df9cf485a48c7337a8987af (patch)
tree9570b8a86b0cabcfb68fb19ab89f8910b02d1cab /arch/arm/mach-mvebu/common.h
parentMerge tag 'tags/cleanup-3.11-3' into mvebu/regmap (diff)
downloadlinux-b21dcafea36dd6249df9cf485a48c7337a8987af.tar.xz
linux-b21dcafea36dd6249df9cf485a48c7337a8987af.zip
arm: mvebu: remove dependency of SMP init on static I/O mapping
The ->smp_init_cpus() function is called very early during boot, at a point where dynamic I/O mappings are not yet possible. However, in the Armada 370/XP implementation of this function, we have to get the number of CPUs. We used to do that by accessing a hardware register, which requires relying on a static I/O mapping set up by ->map_io(). Not only this requires hardcoding a virtual address, but it also prevents us from removing the static I/O mapping. So this commit changes the way used to get the number of CPUs: we now use the Device Tree, which is a representation of the hardware, and provides us the number of available CPUs. This is also more accurate, because it potentially allows to boot the Linux kernel on only a number of CPUs given by the Device Tree, instead of unconditionally on all CPUs. As a consequence, the coherency_get_cpu_count() function becomes no longer used, so we remove it. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Diffstat (limited to 'arch/arm/mach-mvebu/common.h')
-rw-r--r--arch/arm/mach-mvebu/common.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/mach-mvebu/common.h b/arch/arm/mach-mvebu/common.h
index aa27bc2ffb60..98defd5e92cd 100644
--- a/arch/arm/mach-mvebu/common.h
+++ b/arch/arm/mach-mvebu/common.h
@@ -15,6 +15,8 @@
#ifndef __ARCH_MVEBU_COMMON_H
#define __ARCH_MVEBU_COMMON_H
+#define ARMADA_XP_MAX_CPUS 4
+
void mvebu_restart(char mode, const char *cmd);
void armada_370_xp_init_irq(void);