clocksource/timer-riscv: Add riscv_clock_shutdown callback
authorJoshua Yeong <joshua.yeong@starfivetech.com>
Thu, 16 Nov 2023 10:53:12 +0000 (18:53 +0800)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Wed, 27 Dec 2023 14:37:11 +0000 (15:37 +0100)
Add clocksource detach/shutdown callback to disable RISC-V timer interrupt when
switching out riscv timer as clock source

Signed-off-by: Joshua Yeong <joshua.yeong@starfivetech.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20231116105312.4800-1-joshua.yeong@starfivetech.com
drivers/clocksource/timer-riscv.c

index 57857c0dfba97e0bfdcd5190e8aee31e11028667..e66dcbd6656658dd32f913189fceebda87e8ccbf 100644 (file)
@@ -61,12 +61,19 @@ static int riscv_clock_next_event(unsigned long delta,
        return 0;
 }
 
+static int riscv_clock_shutdown(struct clock_event_device *evt)
+{
+       riscv_clock_event_stop();
+       return 0;
+}
+
 static unsigned int riscv_clock_event_irq;
 static DEFINE_PER_CPU(struct clock_event_device, riscv_clock_event) = {
        .name                   = "riscv_timer_clockevent",
        .features               = CLOCK_EVT_FEAT_ONESHOT,
        .rating                 = 100,
        .set_next_event         = riscv_clock_next_event,
+       .set_state_shutdown     = riscv_clock_shutdown,
 };
 
 /*