fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / m68k / atari / time.c
index 6df7fb6..e0d3c8b 100644 (file)
 #include <linux/init.h>
 #include <linux/rtc.h>
 #include <linux/bcd.h>
+#include <linux/delay.h>
 
 #include <asm/atariints.h>
 
 void __init
-atari_sched_init(irqreturn_t (*timer_routine)(int, void *, struct pt_regs *))
+atari_sched_init(irq_handler_t timer_routine)
 {
     /* set Timer C data Register */
     mfp.tim_dt_c = INT_TICKS;
@@ -213,8 +214,10 @@ int atari_tt_hwclk( int op, struct rtc_time *t )
      */
 
     while( RTC_READ(RTC_FREQ_SELECT) & RTC_UIP ) {
-        current->state = TASK_INTERRUPTIBLE;
-        schedule_timeout(HWCLK_POLL_INTERVAL);
+       if (in_atomic() || irqs_disabled())
+           mdelay(1);
+       else
+           schedule_timeout_interruptible(HWCLK_POLL_INTERVAL);
     }
 
     local_irq_save(flags);