diff options
author | Olof Johansson <olof@lixom.net> | 2007-11-07 10:31:06 -0500 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2007-12-01 14:04:39 -0500 |
commit | 32e2b55eec7116a859b384dbcc4b52a54a156869 (patch) | |
tree | d020737e8f9811e68a375eb250cc74cd0b9da531 /arch/powerpc/platforms/pasemi | |
parent | 8b32bc03256c82a6a4fcb3c2520b54469b74ec82 (diff) |
[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 @@ | |||
43 | 43 | ||
44 | #include "pasemi.h" | 44 | #include "pasemi.h" |
45 | 45 | ||
46 | #if !defined(CONFIG_SMP) | ||
47 | static void smp_send_stop(void) {} | ||
48 | #endif | ||
49 | |||
46 | /* SDC reset register, must be pre-mapped at reset time */ | 50 | /* SDC reset register, must be pre-mapped at reset time */ |
47 | static void __iomem *reset_reg; | 51 | static void __iomem *reset_reg; |
48 | 52 | ||
@@ -60,6 +64,9 @@ static int num_mce_regs; | |||
60 | 64 | ||
61 | static void pas_restart(char *cmd) | 65 | static void pas_restart(char *cmd) |
62 | { | 66 | { |
67 | /* Need to put others cpu in hold loop so they're not sleeping */ | ||
68 | smp_send_stop(); | ||
69 | udelay(10000); | ||
63 | printk("Restarting...\n"); | 70 | printk("Restarting...\n"); |
64 | while (1) | 71 | while (1) |
65 | out_le32(reset_reg, 0x6000000); | 72 | out_le32(reset_reg, 0x6000000); |