irqchip/renesas-rzv2h: Prevent TINT spurious interrupt
A spurious TINT interrupt is seen during boot on RZ/G3E SMARC EVK.
A glitch in the edge detection circuit can cause a spurious interrupt.
Clear the status flag after setting the ICU_TSSRk registers, which is
recommended in the hardware manual as a countermeasure.
Fixes: 0d7605e75ac2 ("irqchip: Add RZ/V2H(P) Interrupt Control Unit (ICU) driver")
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
This commit is contained in:
parent
fbb429ddff
commit
28e89cdac6
@ -170,6 +170,14 @@ static void rzv2h_tint_irq_endisable(struct irq_data *d, bool enable)
|
||||
else
|
||||
tssr &= ~ICU_TSSR_TIEN(tssel_n, priv->info->field_width);
|
||||
writel_relaxed(tssr, priv->base + priv->info->t_offs + ICU_TSSR(k));
|
||||
|
||||
/*
|
||||
* A glitch in the edge detection circuit can cause a spurious
|
||||
* interrupt. Clear the status flag after setting the ICU_TSSRk
|
||||
* registers, which is recommended by the hardware manual as a
|
||||
* countermeasure.
|
||||
*/
|
||||
writel_relaxed(BIT(tint_nr), priv->base + priv->info->t_offs + ICU_TSCLR);
|
||||
}
|
||||
|
||||
static void rzv2h_icu_irq_disable(struct irq_data *d)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user