linux/arch/arm/mach-shmobile
Stephen Boyd 7fa22bd546 ARM: 6993/1: platsmp: Allow secondary cpu hotplug with maxcpus=1
If an ARM system has multiple cpus in the same socket and the
kernel is booted with maxcpus=1, secondary cpus are possible but
not present due to how platform_smp_prepare_cpus() is called.
Since most typical ARM processors don't actually support physical
hotplug, initialize the present map to be equal to the possible
map in generic ARM SMP code. Also, always call
platform_smp_prepare_cpus() as long as max_cpus is non-zero (0
means no SMP) to allow platform code to do any SMP setup.

After applying this patch it's possible to boot an ARM system
with maxcpus=1 on the command line and then hotplug in secondary
cpus via sysfs. This is more in line with how x86 does things.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Kukjin Kim <kgene.kim@samsung.com>
Cc: David Brown <davidb@codeaurora.org>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
Cc: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-07-07 14:45:07 +01:00
..
include/mach ARM: 6886/1: mmc, Add zboot from eSD support for SuperH Mobile ARM 2011-06-29 10:00:52 +01:00
board-ag5evm.c ARM: mach-shmobile: Enable DMAEngine for SDHI on AG5EVM 2011-05-25 11:37:00 +09:00
board-ap4evb.c ARM: mach-shmobile: sh7372 Core Standby Suspend-to-RAM 2011-05-25 11:19:20 +09:00
board-g3evm.c ARM: mach-shmobile: remove sh7367 on-chip set_irq_type() 2011-01-18 13:51:57 +09:00
board-g4evm.c ARM: mach-shmobile: Correct the G4EVM SDHI0 I/O range. 2011-05-25 14:54:30 +09:00
board-mackerel.c ARM: mach-shmobile: mackerel: add renesas_usbhs support for USB1 2011-05-25 17:07:36 +09:00
clock-sh73a0.c ARM: mach-shmobile: sh73a0 DMA Engine support for SY-DMAC 2011-05-25 11:36:51 +09:00
clock-sh7367.c
clock-sh7372.c ARM: arch-shmobile: sh7372: add renesas_usbhs irq support 2011-05-25 11:58:25 +09:00
clock-sh7377.c
clock.c
console.c
cpuidle.c ARM: mach-shmobile: CPUIdle support 2011-05-25 11:19:23 +09:00
entry-gic.S ARM: mach-shmobile: update for GIC changes. 2011-01-07 12:02:11 +09:00
entry-intc.S ARM: mach-shmobile: Run-time IRQ handler for INTCA 2011-01-07 10:42:50 +09:00
headsmp.S ARM: mach-shmobile: headsmp.S build fix 2011-05-24 12:29:14 +09:00
hotplug.c
intc-sh73a0.c ARM: mach-shmobile: fix cpu_base of gic_init() on sh73a0 2011-01-14 07:46:58 +09:00
intc-sh7367.c arm: Cleanup the irq namespace 2011-03-29 14:47:57 +02:00
intc-sh7372.c ARM: arch-shmobile: Use multiple irq vectors for SDHI 2011-05-24 12:42:46 +09:00
intc-sh7377.c arm: Cleanup the irq namespace 2011-03-29 14:47:57 +02:00
Kconfig ARM: mach-shmobile: AG5EVM LCDC / MIPI-DSI platform data 2011-01-20 21:34:32 +09:00
localtimer.c ARM: 6759/1: smp: Select local timers vs broadcast timer support runtime 2011-02-23 17:54:27 +00:00
Makefile ARM: mach-shmobile: CPUIdle support 2011-05-25 11:19:23 +09:00
Makefile.boot
pfc-sh73a0.c ARM: mach-shmobile: sh73a0 GPIO pullup improvement 2010-12-22 16:35:50 +09:00
pfc-sh7367.c
pfc-sh7372.c
pfc-sh7377.c
platsmp.c ARM: 6993/1: platsmp: Allow secondary cpu hotplug with maxcpus=1 2011-07-07 14:45:07 +01:00
pm_runtime.c PM / Runtime: Generic clock manipulation rountines for runtime PM (v6) 2011-04-30 00:25:44 +02:00
pm-sh7372.c ARM: mach-shmobile: Tidy up after SH7372 pm changes. 2011-05-25 11:22:58 +09:00
setup-sh73a0.c ARM: mach-shmobile: sh73a0 DMA Engine support for SY-DMAC 2011-05-25 11:36:51 +09:00
setup-sh7367.c ARM: mach-shmobile: sh7367 UIO platform data V3 2011-05-24 12:17:35 +09:00
setup-sh7372.c ARM: mach-shmobile: sh7372 UIO platform data V3 2011-05-24 12:17:40 +09:00
setup-sh7377.c ARM: mach-shmobile: sh7377 UIO platform data V3 2011-05-24 12:19:30 +09:00
sleep-sh7372.S ARM: mach-shmobile: sh7372 Core Standby Suspend-to-RAM 2011-05-25 11:19:20 +09:00
smp-sh73a0.c ARM: mach-shmobile: sh73a0 twd_base fix 2011-05-24 12:31:17 +09:00
suspend.c ARM: mach-shmobile: Suspend-to-RAM support 2011-05-25 11:19:17 +09:00
timer.c