summaryrefslogtreecommitdiff
path: root/arch/powerpc
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2007-11-07 09:31:06 -0600
committerOlof Johansson <olof@lixom.net>2007-12-01 13:04:39 -0600
commit32e2b55eec7116a859b384dbcc4b52a54a156869 (patch)
treed020737e8f9811e68a375eb250cc74cd0b9da531 /arch/powerpc
parent8b32bc03256c82a6a4fcb3c2520b54469b74ec82 (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')
-rw-r--r--arch/powerpc/platforms/pasemi/setup.c7
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);