[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>
This commit is contained in:
@@ -43,6 +43,10 @@
|
|||||||
|
|
||||||
#include "pasemi.h"
|
#include "pasemi.h"
|
||||||
|
|
||||||
|
#if !defined(CONFIG_SMP)
|
||||||
|
static void smp_send_stop(void) {}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* SDC reset register, must be pre-mapped at reset time */
|
/* SDC reset register, must be pre-mapped at reset time */
|
||||||
static void __iomem *reset_reg;
|
static void __iomem *reset_reg;
|
||||||
|
|
||||||
@@ -60,6 +64,9 @@ static int num_mce_regs;
|
|||||||
|
|
||||||
static void pas_restart(char *cmd)
|
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");
|
printk("Restarting...\n");
|
||||||
while (1)
|
while (1)
|
||||||
out_le32(reset_reg, 0x6000000);
|
out_le32(reset_reg, 0x6000000);
|
||||||
|
Reference in New Issue
Block a user