ARM: SoC: add per-platform SMP operations
authorMarc Zyngier <marc.zyngier@arm.com>
Thu, 8 Sep 2011 08:06:10 +0000 (09:06 +0100)
committerArnd Bergmann <arnd@arndb.de>
Thu, 13 Sep 2012 11:49:33 +0000 (13:49 +0200)
commitabcee5fb0dfbb248d883a2f6bdb4820abe3ac524
tree6a804ae4be161aa238ee4c433d6ea90a5d66fa72
parent4cbe5a555fa58a79b6ecbb6c531b8bab0650778d
ARM: SoC: add per-platform SMP operations

This adds a 'struct smp_operations' to abstract the CPU initialization
and hot plugging functions on SMP systems, which otherwise conflict
in a multiplatform kernel. This also helps shmobile and potentially
others that have more than one method to do these.

To allow the kernel to continue building, the platform hooks are
defined as weak symbols which are overrided by the platform code.
Once all platforms are converted, the "weak" attribute will be
removed and the function made static.

Unlike the original version from Marc, this new version from Arnd
does not use a generalized abstraction for per-soc data structures
but only tries to solve the problem for the SMP operations. This
way, we can collapse the previous four data structures into a
single struct, which is less systematic but also easier to follow
as a causal reader.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm/include/asm/mach/arch.h
arch/arm/include/asm/smp.h
arch/arm/kernel/setup.c
arch/arm/kernel/smp.c