aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/pasemi/setup.c
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2007-11-07 10:31:06 -0500
committerOlof Johansson <olof@lixom.net>2007-12-01 14:04:39 -0500
commit32e2b55eec7116a859b384dbcc4b52a54a156869 (patch)
treed020737e8f9811e68a375eb250cc74cd0b9da531 /arch/powerpc/platforms/pasemi/setup.c
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/platforms/pasemi/setup.c')
-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 @@
43 43
44#include "pasemi.h" 44#include "pasemi.h"
45 45
46#if !defined(CONFIG_SMP)
47static 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 */
47static void __iomem *reset_reg; 51static void __iomem *reset_reg;
48 52
@@ -60,6 +64,9 @@ static int num_mce_regs;
60 64
61static void pas_restart(char *cmd) 65static 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);