linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] irq-bcm2836: Prevent spurious interrupts, and trap them early
@ 2016-10-27 16:40 Eric Anholt
  2016-10-27 16:40 ` Eric Anholt
  2016-10-27 18:20 ` Eric Anholt
  0 siblings, 2 replies; 3+ messages in thread
From: Eric Anholt @ 2016-10-27 16:40 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: linux-rpi-kernel, linux-arm-kernel, linux-kernel, Stephen Warren,
	Lee Jones, bcm-kernel-feedback-list, Jason Cooper, Marc Zyngier,
	Phil Elwell, Eric Anholt

From: Phil Elwell <phil@raspberrypi.org>

The old arch-specific IRQ macros included a dsb to ensure the
write to clear the mailbox interrupt completed before returning
from the interrupt. The BCM2836 irqchip driver needs the same
precaution to avoid spurious interrupts.

Spurious interrupts are still possible for other reasons,
though, so trap them early.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
---

Phil, your patch didn't apply because it looks like you pasted into
gmail (tabs got converted to spaces).  git-send-email can avoid that.
I've pulled it out of the rpi tree and applied the s-o-b from your
email.

Also, patches to lkml need to be sent to the relevant maintainers or
they won't get picked up.  ./scripts/get_maintainer.pl <patch> can
give you the list of who to send to/cc.

 drivers/irqchip/irq-bcm2836.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c
index d96b2c947e74..93e3f7660c42 100644
--- a/drivers/irqchip/irq-bcm2836.c
+++ b/drivers/irqchip/irq-bcm2836.c
@@ -175,6 +175,7 @@ __exception_irq_entry bcm2836_arm_irqchip_handle_irq(struct pt_regs *regs)
 		u32 ipi = ffs(mbox_val) - 1;
 
 		writel(1 << ipi, mailbox0);
+		dsb(sy);
 		handle_IPI(ipi, regs);
 #endif
 	} else if (stat) {
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH] irq-bcm2836: Prevent spurious interrupts, and trap them early
  2016-10-27 16:40 [PATCH] irq-bcm2836: Prevent spurious interrupts, and trap them early Eric Anholt
@ 2016-10-27 16:40 ` Eric Anholt
  2016-10-27 18:20 ` Eric Anholt
  1 sibling, 0 replies; 3+ messages in thread
From: Eric Anholt @ 2016-10-27 16:40 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: linux-rpi-kernel, linux-arm-kernel, linux-kernel, Stephen Warren,
	Lee Jones, bcm-kernel-feedback-list, Jason Cooper, Marc Zyngier,
	Phil Elwell, Eric Anholt

From: Phil Elwell <phil@raspberrypi.org>

The old arch-specific IRQ macros included a dsb to ensure the
write to clear the mailbox interrupt completed before returning
from the interrupt. The BCM2836 irqchip driver needs the same
precaution to avoid spurious interrupts.

Spurious interrupts are still possible for other reasons,
though, so trap them early.

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
---

Phil, your patch didn't apply because it looks like you pasted into
gmail (tabs got converted to spaces).  git-send-email can avoid that.
I've pulled it out of the rpi tree and applied the s-o-b from your
email.

Also, patches to lkml need to be sent to the relevant maintainers or
they won't get picked up.  ./scripts/get_maintainer.pl <patch> can
give you the list of who to send to/cc.

 drivers/irqchip/irq-bcm2836.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c
index d96b2c947e74..93e3f7660c42 100644
--- a/drivers/irqchip/irq-bcm2836.c
+++ b/drivers/irqchip/irq-bcm2836.c
@@ -175,6 +175,7 @@ __exception_irq_entry bcm2836_arm_irqchip_handle_irq(struct pt_regs *regs)
 		u32 ipi = ffs(mbox_val) - 1;
 
 		writel(1 << ipi, mailbox0);
+		dsb(sy);
 		handle_IPI(ipi, regs);
 #endif
 	} else if (stat) {
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] irq-bcm2836: Prevent spurious interrupts, and trap them early
  2016-10-27 16:40 [PATCH] irq-bcm2836: Prevent spurious interrupts, and trap them early Eric Anholt
  2016-10-27 16:40 ` Eric Anholt
@ 2016-10-27 18:20 ` Eric Anholt
  1 sibling, 0 replies; 3+ messages in thread
From: Eric Anholt @ 2016-10-27 18:20 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: linux-rpi-kernel, linux-arm-kernel, linux-kernel, Stephen Warren,
	Lee Jones, bcm-kernel-feedback-list, Jason Cooper, Marc Zyngier,
	Phil Elwell

Eric Anholt <eric@anholt.net> writes:

> From: Phil Elwell <phil@raspberrypi.org>
>
> The old arch-specific IRQ macros included a dsb to ensure the
> write to clear the mailbox interrupt completed before returning
> from the interrupt. The BCM2836 irqchip driver needs the same
> precaution to avoid spurious interrupts.
>
> Spurious interrupts are still possible for other reasons,
> though, so trap them early.
>
> Signed-off-by: Phil Elwell <phil@raspberrypi.org>
> Signed-off-by: Eric Anholt <eric@anholt.net>
> ---
>
> Phil, your patch didn't apply because it looks like you pasted into
> gmail (tabs got converted to spaces).  git-send-email can avoid that.
> I've pulled it out of the rpi tree and applied the s-o-b from your
> email.
>
> Also, patches to lkml need to be sent to the relevant maintainers or
> they won't get picked up.  ./scripts/get_maintainer.pl <patch> can
> give you the list of who to send to/cc.

And then it was my turn to fumble a patch email.  Autocompleted the
wrong version(s).  Resending :(

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-10-27 18:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-27 16:40 [PATCH] irq-bcm2836: Prevent spurious interrupts, and trap them early Eric Anholt
2016-10-27 16:40 ` Eric Anholt
2016-10-27 18:20 ` Eric Anholt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).