]> err.no Git - linux-2.6/blobdiff - arch/arm/mach-pnx4008/time.c
Pull virt-cpu-accounting into release branch
[linux-2.6] / arch / arm / mach-pnx4008 / time.c
index b986065cd0f33c1f920aa534d9a499d78f031bf5..6d4ca8fc0cb4521c18904b761bd1a73d0459d664 100644 (file)
@@ -47,15 +47,12 @@ static unsigned long pnx4008_gettimeoffset(void)
 /*!
  * IRQ handler for the timer
  */
-static irqreturn_t pnx4008_timer_interrupt(int irq, void *dev_id,
-                                          struct pt_regs *regs)
+static irqreturn_t pnx4008_timer_interrupt(int irq, void *dev_id)
 {
        if (__raw_readl(HSTIM_INT) & MATCH0_INT) {
 
-               write_seqlock(&xtime_lock);
-
                do {
-                       timer_tick(regs);
+                       timer_tick();
 
                        /*
                         * this algorithm takes care of possible delay
@@ -74,8 +71,6 @@ static irqreturn_t pnx4008_timer_interrupt(int irq, void *dev_id,
                } while ((signed)
                         (__raw_readl(HSTIM_MATCH0) -
                          __raw_readl(HSTIM_COUNTER)) < 0);
-
-               write_sequnlock(&xtime_lock);
        }
 
        return IRQ_HANDLED;
@@ -83,7 +78,7 @@ static irqreturn_t pnx4008_timer_interrupt(int irq, void *dev_id,
 
 static struct irqaction pnx4008_timer_irq = {
        .name = "PNX4008 Tick Timer",
-       .flags = IRQF_DISABLED | IRQF_TIMER,
+       .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
        .handler = pnx4008_timer_interrupt
 };