1 From 71609ab22785edd13b385920b1b0c6de24adc901 Mon Sep 17 00:00:00 2001
2 From: Phil Elwell <phil@raspberrypi.org>
3 Date: Fri, 4 Dec 2015 17:41:50 +0000
4 Subject: [PATCH] irq-bcm2836: Prevent spurious interrupts, and trap them early
6 The old arch-specific IRQ macros included a dsb to ensure the
7 write to clear the mailbox interrupt completed before returning
8 from the interrupt. The BCM2836 irqchip driver needs the same
9 precaution to avoid spurious interrupts.
11 Spurious interrupts are still possible for other reasons,
12 though, so trap them early.
14 drivers/irqchip/irq-bcm2836.c | 3 ++-
15 1 file changed, 2 insertions(+), 1 deletion(-)
17 --- a/drivers/irqchip/irq-bcm2836.c
18 +++ b/drivers/irqchip/irq-bcm2836.c
19 @@ -170,9 +170,10 @@ __exception_irq_entry bcm2836_arm_irqchi
20 u32 ipi = ffs(mbox_val) - 1;
22 writel(1 << ipi, mailbox0);
24 handle_IPI(ipi, regs);
28 u32 hwirq = ffs(stat) - 1;
30 handle_IRQ(irq_linear_revmap(intc.domain, hwirq), regs);