avr32: At32ap: Convert intc irq_chip to new functions
Thomas Gleixner [Sun, 6 Feb 2011 16:29:02 +0000 (17:29 +0100)]
Also replace the open coded handler call with the proper wrapper.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
LKML-Reference: <20110206163009.096308633@linutronix.de>

arch/avr32/mach-at32ap/intc.c

index 994c454..d9270d6 100644 (file)
@@ -34,12 +34,12 @@ extern struct platform_device at32_intc0_device;
  * TODO: We may be able to implement mask/unmask by setting IxM flags
  * in the status register.
  */
-static void intc_mask_irq(unsigned int irq)
+static void intc_mask_irq(struct irq_data *d)
 {
 
 }
 
-static void intc_unmask_irq(unsigned int irq)
+static void intc_unmask_irq(struct irq_data *d)
 {
 
 }
@@ -47,8 +47,8 @@ static void intc_unmask_irq(unsigned int irq)
 static struct intc intc0 = {
        .chip = {
                .name           = "intc",
-               .mask           = intc_mask_irq,
-               .unmask         = intc_unmask_irq,
+               .irq_mask       = intc_mask_irq,
+               .irq_unmask     = intc_unmask_irq,
        },
 };
 
@@ -57,7 +57,6 @@ static struct intc intc0 = {
  */
 asmlinkage void do_IRQ(int level, struct pt_regs *regs)
 {
-       struct irq_desc *desc;
        struct pt_regs *old_regs;
        unsigned int irq;
        unsigned long status_reg;
@@ -69,8 +68,7 @@ asmlinkage void do_IRQ(int level, struct pt_regs *regs)
        irq_enter();
 
        irq = intc_readl(&intc0, INTCAUSE0 - 4 * level);
-       desc = irq_desc + irq;
-       desc->handle_irq(irq, desc);
+       generic_handle_irq(irq);
 
        /*
         * Clear all interrupt level masks so that we may handle