diff options
| author | Dmitry Torokhov <[email protected]> | 2023-05-01 15:20:08 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-05-01 15:20:08 -0700 | 
| commit | 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e (patch) | |
| tree | d57f3a63479a07b4e0cece029886e76e04feb984 /drivers/clocksource/timer-microchip-pit64b.c | |
| parent | 5dc63e56a9cf8df0b59c234a505a1653f1bdf885 (diff) | |
| parent | 53bea86b5712c7491bb3dae12e271666df0a308c (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.4 merge window.
Diffstat (limited to 'drivers/clocksource/timer-microchip-pit64b.c')
| -rw-r--r-- | drivers/clocksource/timer-microchip-pit64b.c | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/clocksource/timer-microchip-pit64b.c b/drivers/clocksource/timer-microchip-pit64b.c index d5f1436f33d9..57209bb38c70 100644 --- a/drivers/clocksource/timer-microchip-pit64b.c +++ b/drivers/clocksource/timer-microchip-pit64b.c @@ -9,6 +9,7 @@  #include <linux/clk.h>  #include <linux/clockchips.h> +#include <linux/delay.h>  #include <linux/interrupt.h>  #include <linux/of_address.h>  #include <linux/of_irq.h> @@ -92,6 +93,8 @@ struct mchp_pit64b_clksrc {  static void __iomem *mchp_pit64b_cs_base;  /* Default cycles for clockevent timer. */  static u64 mchp_pit64b_ce_cycles; +/* Delay timer. */ +static struct delay_timer mchp_pit64b_dt;  static inline u64 mchp_pit64b_cnt_read(void __iomem *base)  { @@ -169,6 +172,11 @@ static u64 notrace mchp_pit64b_sched_read_clk(void)  	return mchp_pit64b_cnt_read(mchp_pit64b_cs_base);  } +static unsigned long notrace mchp_pit64b_dt_read(void) +{ +	return mchp_pit64b_cnt_read(mchp_pit64b_cs_base); +} +  static int mchp_pit64b_clkevt_shutdown(struct clock_event_device *cedev)  {  	struct mchp_pit64b_timer *timer = clkevt_to_mchp_pit64b_timer(cedev); @@ -376,6 +384,10 @@ static int __init mchp_pit64b_init_clksrc(struct mchp_pit64b_timer *timer,  	sched_clock_register(mchp_pit64b_sched_read_clk, 64, clk_rate); +	mchp_pit64b_dt.read_current_timer = mchp_pit64b_dt_read; +	mchp_pit64b_dt.freq = clk_rate; +	register_current_timer_delay(&mchp_pit64b_dt); +  	return 0;  }  |