]> err.no Git - linux-2.6/blobdiff - arch/m68k/atari/time.c
Merge branch 'dmapool' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc
[linux-2.6] / arch / m68k / atari / time.c
index 6df7fb60dfea5af07a03950b62dc3d200c77a600..e0d3c8bfb40864791b6c333e3926be8212ba7bc5 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);