From: Thomas Gleixner Date: Thu, 19 Jun 2014 21:34:43 +0000 (+0000) Subject: irqchip: spear_shirq: Remove the parent irq "ack"/unmask X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=fe64ac89cf8f5067cf7f6757b6cd9fd77c527bdf;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git irqchip: spear_shirq: Remove the parent irq "ack"/unmask "ack" is actually a mask in the parent irq. The demultiplexer and the handlers run with interrupts disabled. No point in masking and unmasking the parent. Signed-off-by: Thomas Gleixner Link: https://lkml.kernel.org/r/20140619212713.754300980@linutronix.de Acked-by: Viresh Kumar Signed-off-by: Jason Cooper --- diff --git a/drivers/irqchip/spear-shirq.c b/drivers/irqchip/spear-shirq.c index 8521a7295b02..8765aa7f7a15 100644 --- a/drivers/irqchip/spear-shirq.c +++ b/drivers/irqchip/spear-shirq.c @@ -222,12 +222,8 @@ static struct irq_chip shirq_chip = { static void shirq_handler(unsigned irq, struct irq_desc *desc) { 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 pend; - chip->irq_ack(idata); - pend = readl(shirq->base + shirq->regs.status_reg) & shirq->mask; pend >>= shirq->offset; @@ -237,8 +233,6 @@ static void shirq_handler(unsigned irq, struct irq_desc *desc) pend &= ~(0x1 << irq); generic_handle_irq(shirq->virq_base + irq); } - - chip->irq_unmask(idata); } static void __init spear_shirq_register(struct spear_shirq *shirq,