Pull video into test branch
[linux-drm-fsl-dcu.git] / arch / sh / cchips / voyagergx / irq.c
index 892214bade194edf67e0387b435ef04b3c792e50..f7ea700d05ae53c022493c791f601aa25266f7e5 100644 (file)
 
     Copyright 2003 (c) Lineo uSolutions,Inc.
 */
-/* -------------------------------------------------------------------- */
-
-#undef DEBUG
-
-#include <linux/config.h>
-#include <linux/sched.h>
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/param.h>
-#include <linux/ioport.h>
 #include <linux/interrupt.h>
 #include <linux/init.h>
-#include <linux/irq.h>
-
-#include <asm/io.h>
-#include <asm/irq.h>
-#include <asm/rts7751r2d/rts7751r2d.h>
-#include <asm/rts7751r2d/voyagergx_reg.h>
+#include <linux/io.h>
+#include <asm/voyagergx.h>
+#include <asm/rts7751r2d.h>
 
 static void disable_voyagergx_irq(unsigned int irq)
 {
-       unsigned long flags, val;
-       unsigned long  mask = 1 << (irq - VOYAGER_IRQ_BASE);
+       unsigned long val;
+       unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
 
-       pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask);
-       local_irq_save(flags);
+       pr_debug("disable_voyagergx_irq(%d): mask=%lx\n", irq, mask);
         val = inl(VOYAGER_INT_MASK);
         val &= ~mask;
         outl(val, VOYAGER_INT_MASK);
-       local_irq_restore(flags);
 }
 
-
 static void enable_voyagergx_irq(unsigned int irq)
 {
-        unsigned long flags, val;
-        unsigned long  mask = 1 << (irq - VOYAGER_IRQ_BASE);
+        unsigned long val;
+        unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
 
-        pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask);
-        local_irq_save(flags);
+        pr_debug("disable_voyagergx_irq(%d): mask=%lx\n", irq, mask);
         val = inl(VOYAGER_INT_MASK);
         val |= mask;
         outl(val, VOYAGER_INT_MASK);
-        local_irq_restore(flags);
 }
 
-
 static void mask_and_ack_voyagergx(unsigned int irq)
 {
        disable_voyagergx_irq(irq);
@@ -96,7 +77,7 @@ static struct hw_interrupt_type voyagergx_irq_type = {
        .end = end_voyagergx_irq,
 };
 
-static irqreturn_t voyagergx_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+static irqreturn_t voyagergx_interrupt(int irq, void *dev_id)
 {
        printk(KERN_INFO
               "VoyagerGX: spurious interrupt, status: 0x%x\n",
@@ -104,9 +85,6 @@ static irqreturn_t voyagergx_interrupt(int irq, void *dev_id, struct pt_regs *re
        return IRQ_HANDLED;
 }
 
-
-/*====================================================*/
-
 static struct {
        int (*func)(int, void *);
        void *dev;
@@ -148,7 +126,7 @@ int voyagergx_irq_demux(int irq)
                } else {
                        printk("Unexpected IRQ irq = %d status = 0x%08lx\n", irq, val);
                }
-               pr_debug("voyagergx_irq_demux %\n", i);
+               pr_debug("voyagergx_irq_demux %ld\n", i);
 #else
                for (bit = 1, i = 0 ; i < VOYAGER_IRQ_NUM ; bit <<= 1, i++)
                        if (val & bit)
@@ -166,7 +144,7 @@ int voyagergx_irq_demux(int irq)
 static struct irqaction irq0  = {
        .name           = "voyagergx",
        .handler        = voyagergx_interrupt,
-       .flags          = SA_INTERRUPT,
+       .flags          = IRQF_DISABLED,
        .mask           = CPU_MASK_NONE,
 };
 
@@ -196,4 +174,3 @@ void __init setup_voyagergx_irq(void)
 
        setup_irq(IRQ_VOYAGER, &irq0);
 }
-