mfd: htc-egpio: Cleanup interrupt handling
authorThomas Gleixner <tglx@linutronix.de>
Fri, 25 Mar 2011 11:12:28 +0000 (11:12 +0000)
committerSamuel Ortiz <sameo@linux.intel.com>
Sat, 26 Mar 2011 23:09:44 +0000 (00:09 +0100)
Replace the open coded handler call with the prober accessor. Retrieve
the handler data from desc. That avoids a redundant lookup in the
sparse irq case.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/mfd/htc-egpio.c

index d00b6d1a69e531daedb85a479fad72849a1e30c9..0ca68860c0d04d32ae3b3e9c508cb611ae5aa03e 100644 (file)
@@ -100,7 +100,7 @@ static struct irq_chip egpio_muxed_chip = {
 
 static void egpio_handler(unsigned int irq, struct irq_desc *desc)
 {
-       struct egpio_info *ei = get_irq_data(irq);
+       struct egpio_info *ei = irq_desc_get_handler_data(desc);
        int irqpin;
 
        /* Read current pins. */
@@ -113,9 +113,7 @@ static void egpio_handler(unsigned int irq, struct irq_desc *desc)
        for_each_set_bit(irqpin, &readval, ei->nirqs) {
                /* Run irq handler */
                pr_debug("got IRQ %d\n", irqpin);
-               irq = ei->irq_start + irqpin;
-               desc = irq_to_desc(irq);
-               desc->handle_irq(irq, desc);
+               generic_handle_irq(ei->irq_start + irqpin);
        }
 }