Message ID | 20231115061811.10041-1-joshua.yeong@starfivetech.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/1] clocksource/timer-risc: Add riscv_clock_shutdown callback | expand |
On Wed, Nov 15, 2023 at 11:49 AM Joshua Yeong <joshua.yeong@starfivetech.com> wrote: > > 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> > --- > drivers/clocksource/timer-riscv.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/clocksource/timer-riscv.c b/drivers/clocksource/timer-riscv.c > index da3071b387eb..588a05459b6a 100644 > --- a/drivers/clocksource/timer-riscv.c > +++ b/drivers/clocksource/timer-riscv.c > @@ -50,12 +50,19 @@ static int riscv_clock_next_event(unsigned long delta, > return 0; > } > > +static int riscv_clock_shutdown(struct clock_event_device *evt) > +{ > + sbi_set_timer(-1); Use riscv_clock_event_stop() here. > + 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, > }; > > /* > -- > 2.25.1 > Regards, Anup
Hi Anup, On 15-Nov-23 3:00 PM, Anup Patel wrote: > On Wed, Nov 15, 2023 at 11:49 AM Joshua Yeong > <joshua.yeong@starfivetech.com> wrote: >> 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> >> --- >> drivers/clocksource/timer-riscv.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/drivers/clocksource/timer-riscv.c b/drivers/clocksource/timer-riscv.c >> index da3071b387eb..588a05459b6a 100644 >> --- a/drivers/clocksource/timer-riscv.c >> +++ b/drivers/clocksource/timer-riscv.c >> @@ -50,12 +50,19 @@ static int riscv_clock_next_event(unsigned long delta, >> return 0; >> } >> >> +static int riscv_clock_shutdown(struct clock_event_device *evt) >> +{ >> + sbi_set_timer(-1); > Use riscv_clock_event_stop() here. You mean replacing riscv_clock_shutdown as 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, >> }; >> >> /* >> -- >> 2.25.1 >> > Regards, > Anup
On Wed, Nov 15, 2023 at 1:22 PM Joshua Yeong <joshua.yeong@starfivetech.com> wrote: > > Hi Anup, > > On 15-Nov-23 3:00 PM, Anup Patel wrote: > > On Wed, Nov 15, 2023 at 11:49 AM Joshua Yeong > > <joshua.yeong@starfivetech.com> wrote: > >> 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> > >> --- > >> drivers/clocksource/timer-riscv.c | 7 +++++++ > >> 1 file changed, 7 insertions(+) > >> > >> diff --git a/drivers/clocksource/timer-riscv.c b/drivers/clocksource/timer-riscv.c > >> index da3071b387eb..588a05459b6a 100644 > >> --- a/drivers/clocksource/timer-riscv.c > >> +++ b/drivers/clocksource/timer-riscv.c > >> @@ -50,12 +50,19 @@ static int riscv_clock_next_event(unsigned long delta, > >> return 0; > >> } > >> > >> +static int riscv_clock_shutdown(struct clock_event_device *evt) > >> +{ > >> + sbi_set_timer(-1); > > Use riscv_clock_event_stop() here. > You mean replacing riscv_clock_shutdown as riscv_clock_event_stop? I meant replacing sbi_set_timer() with 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, > >> }; > >> > >> /* > >> -- > >> 2.25.1 > >> > > Regards, > > Anup Regards, Anup
diff --git a/drivers/clocksource/timer-riscv.c b/drivers/clocksource/timer-riscv.c index da3071b387eb..588a05459b6a 100644 --- a/drivers/clocksource/timer-riscv.c +++ b/drivers/clocksource/timer-riscv.c @@ -50,12 +50,19 @@ static int riscv_clock_next_event(unsigned long delta, return 0; } +static int riscv_clock_shutdown(struct clock_event_device *evt) +{ + sbi_set_timer(-1); + 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, }; /*
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> --- drivers/clocksource/timer-riscv.c | 7 +++++++ 1 file changed, 7 insertions(+)