Skip to content

Commit

Permalink
irqchip: armada-370-xp: Fix MSI interrupt handling
Browse files Browse the repository at this point in the history
The MSI interrupts use the 16 high doorbells, which are notified by using IRQ1
of the main interrupt controller.

The MSI interrupts were handled correctly for Armada-XP and Armada-370 but not
for Armada-375 and Armada-38x, which use chained handler for the MPIC.

This commit fixes that by checking proper interrupt number in chained handler
for the MPIC.

Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com>
Reviewed-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Fixes: bc69b8a ("irqchip: armada-370-xp: Setup a chained handler for the MPIC")
Cc: <stable@vger.kernel.org> # v3.15+
Acked-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Link: https://lkml.kernel.org/r/1411643839-64925-2-git-send-email-jaz@semihalf.com
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
  • Loading branch information
Grzegorz Jaszczyk authored and Jason Cooper committed Nov 2, 2014
1 parent f114040 commit 298dcb2
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/irqchip/irq-armada-370-xp.c
Original file line number Diff line number Diff line change
Expand Up @@ -413,9 +413,9 @@ static void armada_370_xp_mpic_handle_cascade_irq(unsigned int irq,

irqmap = readl_relaxed(per_cpu_int_base + ARMADA_375_PPI_CAUSE);

if (irqmap & BIT(0)) {
if (irqmap & BIT(1)) {
armada_370_xp_handle_msi_irq(NULL, true);
irqmap &= ~BIT(0);
irqmap &= ~BIT(1);
}

for_each_set_bit(irqn, &irqmap, BITS_PER_LONG) {
Expand Down

0 comments on commit 298dcb2

Please sign in to comment.