Merge ../linux-2.6-watchdog-mm
[linux-drm-fsl-dcu.git] / arch / arm / mach-integrator / core.c
index 576a5e979c0003b6ed8112ce15d1b2d2dacea8c2..8d880cb9ba39f4795166274d961f7763b87a7083 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/device.h>
 #include <linux/spinlock.h>
 #include <linux/interrupt.h>
+#include <linux/irq.h>
 #include <linux/sched.h>
 #include <linux/smp.h>
 #include <linux/termios.h>
@@ -247,7 +248,7 @@ unsigned long integrator_gettimeoffset(void)
  * IRQ handler for the timer
  */
 static irqreturn_t
-integrator_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+integrator_timer_interrupt(int irq, void *dev_id)
 {
        write_seqlock(&xtime_lock);
 
@@ -261,7 +262,7 @@ integrator_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
         * primary CPU
         */
        if (hard_smp_processor_id() == 0) {
-               timer_tick(regs);
+               timer_tick();
 #ifdef CONFIG_SMP
                smp_send_timer();
 #endif
@@ -271,7 +272,7 @@ integrator_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
        /*
         * this is the ARM equivalent of the APIC timer interrupt
         */
-       update_process_times(user_mode(regs));
+       update_process_times(user_mode(get_irq_regs()));
 #endif /* CONFIG_SMP */
 
        write_sequnlock(&xtime_lock);
@@ -281,7 +282,7 @@ integrator_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 
 static struct irqaction integrator_timer_irq = {
        .name           = "Integrator Timer Tick",
-       .flags          = SA_INTERRUPT | SA_TIMER,
+       .flags          = IRQF_DISABLED | IRQF_TIMER,
        .handler        = integrator_timer_interrupt,
 };