summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mvebu/platsmp.c
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2013-06-14 15:18:25 -0700
committerOlof Johansson <olof@lixom.net>2013-06-14 15:18:25 -0700
commit5ae13ef4e1045d6ec5d445947b42c839b9731bec (patch)
tree8cc0d1409f254586cfe81fb08de061df45dbfa2e /arch/arm/mach-mvebu/platsmp.c
parent01758fe655103338ca80b1cdf527d65fd20a4c0c (diff)
parent5fb2038d61ce94e7c9224db2aaff5633ca224953 (diff)
Merge tag 'regmap-3.11' of git://git.infradead.org/users/jcooper/linux into next/soc
mvebu register map changes for v3.11 This series removes the hardcoded register base address for mvebu. Depends: - mvebu/fixes-non-critical (up to tags/fixes-non-3.11-1) - mvebu/cleanup (up to tags/cleanup-3.11-3) * tag 'regmap-3.11' of git://git.infradead.org/users/jcooper/linux: arm: mvebu: disable DEBUG_LL/EARLY_PRINTK in defconfig arm: mvebu: add another earlyprintk Kconfig option arm: mvebu: don't hardcode the physical address for mvebu-mbus arm: mvebu: don't hardcode a physical address in headsmp.S arm: mvebu: remove hardcoded static I/O mapping arm: mvebu: move cache and mvebu-mbus initialization later arm: mvebu: avoid hardcoded virtual address in coherency code arm: mvebu: remove dependency of SMP init on static I/O mapping arm: mvebu: fix length of Ethernet registers area in .dtsi arm: mvebu: fix length of SATA registers area in .dtsi arm: mvebu: mark functions of armada-370-xp.c as static ARM: mvebu: Remove init_irq declaration in machine description ARM: Orion: Remove redundant init_dma_coherent_pool_size() Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm/mach-mvebu/platsmp.c')
-rw-r--r--arch/arm/mach-mvebu/platsmp.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/arm/mach-mvebu/platsmp.c b/arch/arm/mach-mvebu/platsmp.c
index 875ea748391..93f2f3ab45f 100644
--- a/arch/arm/mach-mvebu/platsmp.c
+++ b/arch/arm/mach-mvebu/platsmp.c
@@ -88,8 +88,16 @@ static int __cpuinit armada_xp_boot_secondary(unsigned int cpu,
static void __init armada_xp_smp_init_cpus(void)
{
+ struct device_node *np;
unsigned int i, ncores;
- ncores = coherency_get_cpu_count();
+
+ np = of_find_node_by_name(NULL, "cpus");
+ if (!np)
+ panic("No 'cpus' node found\n");
+
+ ncores = of_get_child_count(np);
+ if (ncores == 0 || ncores > ARMADA_XP_MAX_CPUS)
+ panic("Invalid number of CPUs in DT\n");
/* Limit possible CPUs to defconfig */
if (ncores > nr_cpu_ids) {