]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/i386/mach-voyager/voyager_basic.c
Merge /home/trondmy/scm/kernel/git/torvalds/linux-2.6
[linux-2.6-omap-h63xx.git] / arch / i386 / mach-voyager / voyager_basic.c
index b3eda46e0fe9d4e1a02cfc8e90c9e29b7abd1e94..aa49a33a572cf29ec5ff684d3f20d39fc7568efc 100644 (file)
@@ -27,7 +27,6 @@
 #include <asm/voyager.h>
 #include <asm/vic.h>
 #include <linux/pm.h>
-#include <linux/irq.h>
 #include <asm/tlbflush.h>
 #include <asm/arch_hooks.h>
 #include <asm/i8253.h>
@@ -234,10 +233,9 @@ voyager_power_off(void)
 #endif
        }
        /* and wait for it to happen */
-       for(;;) {
-               __asm("cli");
-               __asm("hlt");
-       }
+       local_irq_disable();
+       for(;;)
+               halt();
 }
 
 /* copied from process.c */
@@ -251,6 +249,12 @@ kb_wait(void)
                        break;
 }
 
+void
+machine_shutdown(void)
+{
+       /* Architecture specific shutdown needed before a kexec */
+}
+
 void
 machine_restart(char *cmd)
 {
@@ -272,10 +276,16 @@ machine_restart(char *cmd)
                outb(basebd | 0x08, VOYAGER_MC_SETUP);
                outb(0x02, catbase + 0x21);
        }
-       for(;;) {
-               asm("cli");
-               asm("hlt");
-       }
+       local_irq_disable();
+       for(;;)
+               halt();
+}
+
+void
+machine_emergency_restart(void)
+{
+       /*for now, just hook this to a warm restart */
+       machine_restart(NULL);
 }
 
 void