linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / mips / sgi-ip32 / ip32-reset.c
index 6340468..0c94800 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/delay.h>
 #include <linux/ds17287rtc.h>
 #include <linux/interrupt.h>
+#include <linux/pm.h>
 
 #include <asm/addrspace.h>
 #include <asm/irq.h>
@@ -140,7 +141,7 @@ static irqreturn_t ip32_rtc_int(int irq, void *dev_id, struct pt_regs *regs)
 
        reg_c = CMOS_READ(RTC_INTR_FLAGS);
        if (!(reg_c & RTC_IRQF)) {
-               printk(KERN_WARNING 
+               printk(KERN_WARNING
                        "%s: RTC IRQ without RTC_IRQF\n", __FUNCTION__);
        }
        /* Wait until interrupt goes away */
@@ -188,12 +189,14 @@ static __init int ip32_reboot_setup(void)
 
        _machine_restart = ip32_machine_restart;
        _machine_halt = ip32_machine_halt;
-       _machine_power_off = ip32_machine_power_off;
-       request_irq(MACEISA_RTC_IRQ, ip32_rtc_int, 0, "rtc", NULL);
+       pm_power_off = ip32_machine_power_off;
+
        init_timer(&blink_timer);
        blink_timer.function = blink_timeout;
        notifier_chain_register(&panic_notifier_list, &panic_block);
 
+       request_irq(MACEISA_RTC_IRQ, ip32_rtc_int, 0, "rtc", NULL);
+
        return 0;
 }