Skip to content

Commit 8248ca3

Browse files
Ley Foon Tandlezcano
authored andcommitted
clocksource/drivers/timer-riscv: Clear timer interrupt on timer initialization
In the RISC-V specification, the stimecmp register doesn't have a default value. To prevent the timer interrupt from being triggered during timer initialization, clear the timer interrupt by writing stimecmp with a maximum value. Fixes: 9f7a8ff ("RISC-V: Prefer sstc extension if available") Cc: <stable@vger.kernel.org> Signed-off-by: Ley Foon Tan <leyfoon.tan@starfivetech.com> Reviewed-by: Samuel Holland <samuel.holland@sifive.com> Tested-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Atish Patra <atishp@rivosinc.com> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Link: https://lore.kernel.org/r/20240306172330.255844-1-leyfoon.tan@starfivetech.com
1 parent c819dbd commit 8248ca3

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/clocksource/timer-riscv.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@ static int riscv_timer_starting_cpu(unsigned int cpu)
108108
{
109109
struct clock_event_device *ce = per_cpu_ptr(&riscv_clock_event, cpu);
110110

111+
/* Clear timer interrupt */
112+
riscv_clock_event_stop();
113+
111114
ce->cpumask = cpumask_of(cpu);
112115
ce->irq = riscv_clock_event_irq;
113116
if (riscv_timer_cannot_wake_cpu)

0 commit comments

Comments
 (0)