[PATCH 2/3 v2] clocksource/drivers/fttmr010: Clear also overflow bit on AST2600

From: Linus Walleij
Date: Wed Sep 22 2021 - 15:59:31 EST


The code was originally just writing 0x1 into TIMER_INTR_STATE
on the AST2600. But that is just the bit for TIMER_1_INT_MATCH1
so if we're using periodic IRQs we also need to clear
TIMER_1_INT_OVERFLOW.

Cc: Cédric Le Goater <clg@xxxxxxxx>
Cc: Joel Stanley <joel@xxxxxxxxx>
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
---
ChangeLog v1->v2:
- Resending with the other patches.
---
drivers/clocksource/timer-fttmr010.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/clocksource/timer-fttmr010.c b/drivers/clocksource/timer-fttmr010.c
index f47099dda96b..5af8ea388cc4 100644
--- a/drivers/clocksource/timer-fttmr010.c
+++ b/drivers/clocksource/timer-fttmr010.c
@@ -285,7 +285,8 @@ static irqreturn_t ast2600_timer_interrupt(int irq, void *dev_id)

val = readl(fttmr010->base + TIMER_INTR_STATE);
if (val & (TIMER_1_INT_MATCH1 | TIMER_1_INT_OVERFLOW)) {
- writel(TIMER_1_INT_MATCH1, fttmr010->base + TIMER_INTR_STATE);
+ writel(TIMER_1_INT_MATCH1 | TIMER_1_INT_OVERFLOW,
+ fttmr010->base + TIMER_INTR_STATE);
evt->event_handler(evt);
} else {
/* Just clear any spurious IRQs from the block */
--
2.31.1