OSDN Git Service

irqchip: spear_shirq: Use the proper interfaces
authorThomas Gleixner <tglx@linutronix.de>
Thu, 19 Jun 2014 21:34:40 +0000 (21:34 +0000)
committerJason Cooper <jason@lakedaemon.net>
Tue, 24 Jun 2014 12:37:50 +0000 (12:37 +0000)
No point in doing a full irq lookup, when the desc pointer is
available.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20140619212713.404243909@linutronix.de
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
drivers/irqchip/spear-shirq.c

index 7ebb1a2..874950c 100644 (file)
@@ -232,12 +232,12 @@ static struct irq_chip shirq_chip = {
 
 static void shirq_handler(unsigned irq, struct irq_desc *desc)
 {
-       u32 i, j, val, mask, tmp;
-       struct irq_chip *chip;
        struct spear_shirq *shirq = irq_get_handler_data(irq);
+       struct irq_data *idata = irq_desc_get_irq_data(desc);
+       struct irq_chip *chip = irq_data_get_irq_chip(idata);
+       u32 i, j, val, mask, tmp;
 
-       chip = irq_get_chip(irq);
-       chip->irq_ack(&desc->irq_data);
+       chip->irq_ack(idata);
 
        mask = ((0x1 << shirq->nr_irqs) - 1) << shirq->offset;
        while ((val = readl(shirq->base + shirq->regs.status_reg) &
@@ -263,7 +263,7 @@ static void shirq_handler(unsigned irq, struct irq_desc *desc)
                        writel(tmp, shirq->base + shirq->regs.clear_reg);
                }
        }
-       chip->irq_unmask(&desc->irq_data);
+       chip->irq_unmask(idata);
 }
 
 static void __init spear_shirq_register(struct spear_shirq *shirq,