irqchip/sifive-plic: Fix T-HEAD PLIC edge trigger handling
authorSamuel Holland <samuel@sholland.org>
Thu, 30 Jun 2022 10:02:41 +0000 (05:02 -0500)
committerMarc Zyngier <maz@kernel.org>
Fri, 1 Jul 2022 14:27:23 +0000 (15:27 +0100)
commit5873ba559101fa37ad9764e79856f71bf54021aa
treee8e57298f8143343133a078fc0c370c1a8f1fe75
parentd60df7fd225af37e31859a9badb0cca73f7aa12d
irqchip/sifive-plic: Fix T-HEAD PLIC edge trigger handling

The T-HEAD PLIC ignores additional edges seen while an edge-triggered
interrupt is being handled. Because of this behavior, the driver needs
to complete edge-triggered interrupts in the .irq_ack callback before
handling them, instead of in the .irq_eoi callback afterward. Otherwise,
it could miss some interrupts.

Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Guo Ren <guoren@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20220630100241.35233-5-samuel@sholland.org
drivers/irqchip/irq-sifive-plic.c