aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Biju Das <biju.das.jz@bp.renesas.com> 2023-09-18 13:24:09 +0100
committerGravatar Marc Zyngier <maz@kernel.org> 2023-09-24 10:18:19 +0100
commit9b8df572ba3f4e544366196820a719a40774433e (patch)
treebcd03323822cc08348d6099cd1c7179824d823d1
parentdt-bindings: interrupt-controller: renesas,rzg2l-irqc: Update description for... (diff)
downloadlinux-9b8df572ba3f4e544366196820a719a40774433e.tar.gz
linux-9b8df572ba3f4e544366196820a719a40774433e.tar.bz2
linux-9b8df572ba3f4e544366196820a719a40774433e.zip
irqchip: renesas-rzg2l: Fix logic to clear TINT interrupt source
The logic to clear the TINT interrupt source in rzg2l_irqc_irq_disable() is wrong as the mask is correct only for LSB on the TSSR register. This issue is found when testing with two TINT interrupt sources. So fix the logic for all TINTs by using the macro TSSEL_SHIFT() to multiply tssr_offset with 8. Fixes: 3fed09559cd8 ("irqchip: Add RZ/G2L IA55 Interrupt Controller driver") Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Tested-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20230918122411.237635-2-biju.das.jz@bp.renesas.com
-rw-r--r--drivers/irqchip/irq-renesas-rzg2l.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/irqchip/irq-renesas-rzg2l.c b/drivers/irqchip/irq-renesas-rzg2l.c
index 4bbfa2b0a4df..2cee5477be6b 100644
--- a/drivers/irqchip/irq-renesas-rzg2l.c
+++ b/drivers/irqchip/irq-renesas-rzg2l.c
@@ -118,7 +118,7 @@ static void rzg2l_irqc_irq_disable(struct irq_data *d)
raw_spin_lock(&priv->lock);
reg = readl_relaxed(priv->base + TSSR(tssr_index));
- reg &= ~(TSSEL_MASK << tssr_offset);
+ reg &= ~(TSSEL_MASK << TSSEL_SHIFT(tssr_offset));
writel_relaxed(reg, priv->base + TSSR(tssr_index));
raw_spin_unlock(&priv->lock);
}