[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20210724231332.2129616-1-linus.walleij@linaro.org>
Date: Sun, 25 Jul 2021 01:13:32 +0200
From: Linus Walleij <linus.walleij@...aro.org>
To: Daniel Lezcano <daniel.lezcano@...aro.org>,
Thomas Gleixner <tglx@...utronix.de>
Cc: linux-kernel@...r.kernel.org,
Linus Walleij <linus.walleij@...aro.org>,
Cédric Le Goater <clg@...d.org>,
Joel Stanley <joel@....id.au>
Subject: [PATCH] clocksource/drivers/fttmr010: Clear also overflow bit on AST2600
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@...d.org>
Cc: Joel Stanley <joel@....id.au>
Signed-off-by: Linus Walleij <linus.walleij@...aro.org>
---
This patch goes on top of the other two I just sent.
---
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 de29d424ec95..24f62698d17f 100644
--- a/drivers/clocksource/timer-fttmr010.c
+++ b/drivers/clocksource/timer-fttmr010.c
@@ -275,7 +275,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
Powered by blists - more mailing lists