mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-09-22 09:34:56 +02:00
irqchip/loongson-htvec: Fix initial interrupt clearing
commit1d1e5630deupstream. In htvec_reset() only the first group of initial interrupts is cleared. This sometimes causes spurious interrupts, so let's clear all groups. While at it, fix the nearby comment that to match the reality of what the driver does. Fixes:818e915fba("irqchip: Add Loongson HyperTransport Vector support") Signed-off-by: Huacai Chen <chenhc@lemote.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/1599819978-13999-2-git-send-email-chenhc@lemote.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
ccd11d1dcd
commit
be4e2dcd85
@@ -151,7 +151,7 @@ static void htvec_reset(struct htvec *priv)
|
||||
/* Clear IRQ cause registers, mask all interrupts */
|
||||
for (idx = 0; idx < priv->num_parents; idx++) {
|
||||
writel_relaxed(0x0, priv->base + HTVEC_EN_OFF + 4 * idx);
|
||||
writel_relaxed(0xFFFFFFFF, priv->base);
|
||||
writel_relaxed(0xFFFFFFFF, priv->base + 4 * idx);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ static int htvec_of_init(struct device_node *node,
|
||||
goto free_priv;
|
||||
}
|
||||
|
||||
/* Interrupt may come from any of the 4 interrupt line */
|
||||
/* Interrupt may come from any of the 8 interrupt lines */
|
||||
for (i = 0; i < HTVEC_MAX_PARENT_IRQ; i++) {
|
||||
parent_irq[i] = irq_of_parse_and_map(node, i);
|
||||
if (parent_irq[i] <= 0)
|
||||
|
||||
Reference in New Issue
Block a user