diff options
author | Olof Johansson <olof@lixom.net> | 2007-11-07 16:31:06 +0100 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2007-12-01 20:04:39 +0100 |
commit | 32e2b55eec7116a859b384dbcc4b52a54a156869 (patch) | |
tree | d020737e8f9811e68a375eb250cc74cd0b9da531 /arch/powerpc/platforms/pasemi | |
parent | [POWERPC] pasemi: Don't enter powersaving states from elevated astates (diff) | |
download | linux-32e2b55eec7116a859b384dbcc4b52a54a156869.tar.xz linux-32e2b55eec7116a859b384dbcc4b52a54a156869.zip |
[POWERPC] pasemi: Move cpus to hold loop before restart
Use smp_send_stop() to move all cpus besides the one executing reboot
into a hold loop, to keep them from being in powersavings mode at the
time of reboot.
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/powerpc/platforms/pasemi')
-rw-r--r-- | arch/powerpc/platforms/pasemi/setup.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c index bd85853bc9da..2b638659d1ea 100644 --- a/arch/powerpc/platforms/pasemi/setup.c +++ b/arch/powerpc/platforms/pasemi/setup.c @@ -43,6 +43,10 @@ #include "pasemi.h" +#if !defined(CONFIG_SMP) +static void smp_send_stop(void) {} +#endif + /* SDC reset register, must be pre-mapped at reset time */ static void __iomem *reset_reg; @@ -60,6 +64,9 @@ static int num_mce_regs; static void pas_restart(char *cmd) { + /* Need to put others cpu in hold loop so they're not sleeping */ + smp_send_stop(); + udelay(10000); printk("Restarting...\n"); while (1) out_le32(reset_reg, 0x6000000); |