diff options
-rw-r--r-- | arch/sh/kernel/process_64.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/arch/sh/kernel/process_64.c b/arch/sh/kernel/process_64.c index 0c2bc61b66b..47415671da0 100644 --- a/arch/sh/kernel/process_64.c +++ b/arch/sh/kernel/process_64.c @@ -27,6 +27,7 @@ #include <linux/init.h> #include <linux/module.h> #include <linux/proc_fs.h> +#include <linux/io.h> #include <asm/uaccess.h> #include <asm/pgtable.h> @@ -106,9 +107,20 @@ void machine_halt(void) void machine_power_off(void) { - extern void enter_deep_standby(void); +#if 0 + /* Disable watchdog timer */ + ctrl_outl(0xa5000000, WTCSR); + /* Configure deep standby on sleep */ + ctrl_outl(0x03, STBCR); +#endif + + __asm__ __volatile__ ( + "sleep\n\t" + "synci\n\t" + "nop;nop;nop;nop\n\t" + ); - enter_deep_standby(); + panic("Unexpected wakeup!\n"); } void (*pm_power_off)(void) = machine_power_off; |