[3.16.y-ckt stable] Patch "irqchip: armada-370-xp: Fix MSI interrupt handling" has been added to staging queue

Luis Henriques luis.henriques at canonical.com
Mon Nov 17 11:14:55 UTC 2014


This is a note to let you know that I have just added a patch titled

    irqchip: armada-370-xp: Fix MSI interrupt handling

to the linux-3.16.y-queue branch of the 3.16.y-ckt extended stable tree 
which can be found at:

 http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.16.y-queue

This patch is scheduled to be released in version 3.16.7-ckt2.

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.16.y-ckt tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Luis

------

>From 53f6e8d9e7c22825b00c8b2cbd43b43f5b33c7ed Mon Sep 17 00:00:00 2001
From: Grzegorz Jaszczyk <jaz at semihalf.com>
Date: Thu, 25 Sep 2014 13:17:18 +0200
Subject: irqchip: armada-370-xp: Fix MSI interrupt handling

commit 298dcb2dd0267d51e4f7c94a628cd0765a50ad75 upstream.

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 at semihalf.com>
Reviewed-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
Fixes: bc69b8adfe22 ("irqchip: armada-370-xp: Setup a chained handler for the MPIC")
Acked-by: Ezequiel Garcia <ezequiel.garcia at free-electrons.com>
Link: https://lkml.kernel.org/r/1411643839-64925-2-git-send-email-jaz@semihalf.com
Signed-off-by: Jason Cooper <jason at lakedaemon.net>
Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
---
 drivers/irqchip/irq-armada-370-xp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/irqchip/irq-armada-370-xp.c b/drivers/irqchip/irq-armada-370-xp.c
index 574aba0eba4e..91424c481782 100644
--- a/drivers/irqchip/irq-armada-370-xp.c
+++ b/drivers/irqchip/irq-armada-370-xp.c
@@ -417,9 +417,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) {
--
2.1.0





More information about the kernel-team mailing list