fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / arm / mach-footbridge / dc21285-timer.c
index 580e1d4..fa6be87 100644 (file)
@@ -6,6 +6,7 @@
  */
 #include <linux/init.h>
 #include <linux/interrupt.h>
+#include <linux/irq.h>
 
 #include <asm/irq.h>
 
@@ -27,13 +28,13 @@ static unsigned long timer1_gettimeoffset (void)
 }
 
 static irqreturn_t
-timer1_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+timer1_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
        *CSR_TIMER1_CLR = 0;
 
-       timer_tick(regs);
+       timer_tick();
 
        write_sequnlock(&xtime_lock);
 
@@ -43,7 +44,7 @@ timer1_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 static struct irqaction footbridge_timer_irq = {
        .name           = "Timer1 timer tick",
        .handler        = timer1_interrupt,
-       .flags          = SA_INTERRUPT,
+       .flags          = IRQF_DISABLED | IRQF_TIMER,
 };
 
 /*
@@ -51,8 +52,6 @@ static struct irqaction footbridge_timer_irq = {
  */
 static void __init footbridge_timer_init(void)
 {
-       isa_rtc_init();
-
        timer1_latch = (mem_fclk_21285 + 8 * HZ) / (16 * HZ);
 
        *CSR_TIMER1_CLR  = 0;
@@ -60,6 +59,8 @@ static void __init footbridge_timer_init(void)
        *CSR_TIMER1_CNTL = TIMER_CNTL_ENABLE | TIMER_CNTL_AUTORELOAD | TIMER_CNTL_DIV16;
 
        setup_irq(IRQ_TIMER1, &footbridge_timer_irq);
+
+       isa_rtc_init();
 }
 
 struct sys_timer footbridge_timer = {