Messages in this thread Patch in this message | | | From | Linus Walleij <> | Subject | [PATCH 2/3 v2] clocksource/drivers/fttmr010: Clear also overflow bit on AST2600 | Date | Wed, 22 Sep 2021 21:56:55 +0200 |
| |
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@kaod.org> Cc: Joel Stanley <joel@jms.id.au> Cc: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- 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
| |