aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/irqchip/spear-shirq.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2014-06-19 17:34:40 -0400
committerJason Cooper <jason@lakedaemon.net>2014-06-24 08:37:50 -0400
commite3c871ab232ccc5fd82f76b21b9cae0113f01dc0 (patch)
treee569f3164814d87779b88443aa5603596b88c63a /drivers/irqchip/spear-shirq.c
parent03319a1a2966ec39be79182d6d529221c38fde72 (diff)
irqchip: spear_shirq: Use the proper interfaces
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>
Diffstat (limited to 'drivers/irqchip/spear-shirq.c')
-rw-r--r--drivers/irqchip/spear-shirq.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/irqchip/spear-shirq.c b/drivers/irqchip/spear-shirq.c
index 7ebb1a2fbfc7..874950c014be 100644
--- a/drivers/irqchip/spear-shirq.c
+++ b/drivers/irqchip/spear-shirq.c
@@ -232,12 +232,12 @@ static struct irq_chip shirq_chip = {
232 232
233static void shirq_handler(unsigned irq, struct irq_desc *desc) 233static void shirq_handler(unsigned irq, struct irq_desc *desc)
234{ 234{
235 u32 i, j, val, mask, tmp;
236 struct irq_chip *chip;
237 struct spear_shirq *shirq = irq_get_handler_data(irq); 235 struct spear_shirq *shirq = irq_get_handler_data(irq);
236 struct irq_data *idata = irq_desc_get_irq_data(desc);
237 struct irq_chip *chip = irq_data_get_irq_chip(idata);
238 u32 i, j, val, mask, tmp;
238 239
239 chip = irq_get_chip(irq); 240 chip->irq_ack(idata);
240 chip->irq_ack(&desc->irq_data);
241 241
242 mask = ((0x1 << shirq->nr_irqs) - 1) << shirq->offset; 242 mask = ((0x1 << shirq->nr_irqs) - 1) << shirq->offset;
243 while ((val = readl(shirq->base + shirq->regs.status_reg) & 243 while ((val = readl(shirq->base + shirq->regs.status_reg) &
@@ -263,7 +263,7 @@ static void shirq_handler(unsigned irq, struct irq_desc *desc)
263 writel(tmp, shirq->base + shirq->regs.clear_reg); 263 writel(tmp, shirq->base + shirq->regs.clear_reg);
264 } 264 }
265 } 265 }
266 chip->irq_unmask(&desc->irq_data); 266 chip->irq_unmask(idata);
267} 267}
268 268
269static void __init spear_shirq_register(struct spear_shirq *shirq, 269static void __init spear_shirq_register(struct spear_shirq *shirq,