Home
last modified time | relevance | path

Searched full:clocksource (Results 1 – 25 of 792) sorted by relevance

12345678910>>...32

/kernel/linux/linux-5.10/include/linux/
Dclocksource.h2 /* linux/include/linux/clocksource.h
6 * If you are not a clocksource, or timekeeping code, you should
23 struct clocksource;
28 #include <asm/clocksource.h>
31 #include <vdso/clocksource.h>
34 * struct clocksource - hardware abstraction for a free running counter
38 * @read: Returns a cycle value, passes clocksource as argument
43 * @max_idle_ns: Maximum idle time permitted by the clocksource (nsecs)
50 * @name: Pointer to clocksource name
55 * to assign your clocksource a rating
[all …]
/kernel/linux/linux-6.6/include/linux/
Dclocksource.h2 /* linux/include/linux/clocksource.h
6 * If you are not a clocksource, or timekeeping code, you should
24 struct clocksource;
29 #include <asm/clocksource.h>
32 #include <vdso/clocksource.h>
35 * struct clocksource - hardware abstraction for a free running counter
39 * @read: Returns a cycle value, passes clocksource as argument
44 * @max_idle_ns: Maximum idle time permitted by the clocksource (nsecs)
51 * @name: Pointer to clocksource name
56 * to assign your clocksource a rating
[all …]
/kernel/linux/linux-6.6/kernel/time/
Dclocksource.c3 * This file contains the functions which manage clocksource drivers.
11 #include <linux/clocksource.h>
23 static noinline u64 cycles_to_nsec_safe(struct clocksource *cs, u64 start, u64 end) in cycles_to_nsec_safe()
88 /*[Clocksource internal variables]---------
90 * currently selected clocksource.
98 * Name of the user-specified clocksource.
100 static struct clocksource *curr_clocksource;
101 static struct clocksource *suspend_clocksource;
122 * clocksource surrounding a read of the clocksource being validated.
127 * If a clocksource is good enough for NTP, it is good enough for us!
[all …]
Djiffies.c3 * This file contains the jiffies based clocksource.
7 #include <linux/clocksource.h>
16 static u64 jiffies_read(struct clocksource *cs) in jiffies_read()
22 * The Jiffies based clocksource is the lowest common
32 static struct clocksource clocksource_jiffies = {
71 struct clocksource * __init __weak clocksource_default_clock(void) in clocksource_default_clock()
76 static struct clocksource refined_jiffies;
DKconfig12 # Architecture has extra clocksource data
16 # Architecture has extra clocksource init called from registration
20 # Clocksources require validation of the clocksource against the last
200 int "Clocksource watchdog maximum allowable skew (in μs)"
206 microseconds before reporting the clocksource to be unstable.
207 The default is based on a half-second clocksource watchdog
209 per million. If the clocksource is good enough for NTP,
210 it is good enough for the clocksource watchdog!
/kernel/linux/linux-5.10/kernel/time/
Dclocksource.c3 * This file contains the functions which manage clocksource drivers.
11 #include <linux/clocksource.h>
76 /*[Clocksource internal variables]---------
78 * currently selected clocksource.
86 * Name of the user-specified clocksource.
88 static struct clocksource *curr_clocksource;
89 static struct clocksource *suspend_clocksource;
104 * clocksource surrounding a read of the clocksource being validated.
115 static struct clocksource *watchdog;
134 static void __clocksource_change_rating(struct clocksource *cs, int rating);
[all …]
Djiffies.c3 * This file contains the jiffies based clocksource.
7 #include <linux/clocksource.h>
35 static u64 jiffies_read(struct clocksource *cs) in jiffies_read()
41 * The Jiffies based clocksource is the lowest common
51 static struct clocksource clocksource_jiffies = {
89 struct clocksource * __init __weak clocksource_default_clock(void) in clocksource_default_clock()
94 static struct clocksource refined_jiffies;
/kernel/linux/linux-5.10/drivers/clocksource/
DKconfig166 where TIMER0 serves as clockevent and TIMER1 serves as clocksource.
182 bool "Nomakdik clocksource driver" if COMPILE_TEST
191 bool "Clocksource PRCMU Timer" if COMPILE_TEST
194 Use the always on PRCMU Timer as clocksource.
248 bool "Clocksource for Energy Micro's EFM32 SoCs" if !ARCH_EFM32
257 bool "Clocksource for LPC32XX" if COMPILE_TEST
263 Support for the LPC32XX clocksource.
266 bool "Clocksource for Pistachio SoC" if COMPILE_TEST
270 Enables the clocksource for the Pistachio SoC.
273 bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST
[all …]
Dmmio.c3 * Generic MMIO clocksource support
5 #include <linux/clocksource.h>
12 struct clocksource clksrc;
15 static inline struct clocksource_mmio *to_mmio_clksrc(struct clocksource *c) in to_mmio_clksrc()
20 u64 clocksource_mmio_readl_up(struct clocksource *c) in clocksource_mmio_readl_up()
25 u64 clocksource_mmio_readl_down(struct clocksource *c) in clocksource_mmio_readl_down()
30 u64 clocksource_mmio_readw_up(struct clocksource *c) in clocksource_mmio_readw_up()
35 u64 clocksource_mmio_readw_down(struct clocksource *c) in clocksource_mmio_readw_down()
41 * clocksource_mmio_init - Initialize a simple mmio based clocksource
43 * @name: Name of the clocksource
[all …]
Dhyperv_timer.c4 * Clocksource driver for the synthetic counter and timers
17 #include <linux/clocksource.h>
21 #include <clocksource/hyperv_timer.h>
38 * interrupts are enabled for other clocksource drivers.
236 * clocksource driver just to set the sint in the legacy case. in hv_stimer_legacy_init()
306 * The Hyper-V clocksource ratings of 250 are chosen to be below the
307 * TSC clocksource rating of 300. In configurations where Hyper-V offers
308 * an InvariantTSC, the TSC is not marked "unstable", so the TSC clocksource
311 * "unstable", so no TSC clocksource is created and the selected Hyper-V
312 * clocksource will be the default.
[all …]
Dtimer-vt8500.c17 #include <linux/clocksource.h>
43 static u64 vt8500_timer_read(struct clocksource *cs) in vt8500_timer_read()
53 static struct clocksource clocksource = { variable
65 u64 alarm = clocksource.read(&clocksource) + cycles; in vt8500_timer_set_next_event()
71 if ((signed)(alarm - clocksource.read(&clocksource)) <= MIN_OSCR_DELTA) in vt8500_timer_set_next_event()
126 ret = clocksource_register_hz(&clocksource, VT8500_TIMER_HZ); in vt8500_timer_init()
129 __func__, clocksource.name); in vt8500_timer_init()
Dtimer-ti-dm-systimer.c3 #include <linux/clocksource.h>
17 #include <clocksource/timer-ti-dm.h>
30 static u32 clocksource; variable
60 struct clocksource dev;
148 * typically no use for a dmtimer clocksource if the 32 KiHz counter is
223 * clockevent or clocksource depending if the counter_32k is available on the
231 * clock as the clocksource, and any available dmtimer as clockevent.
233 * For am437x, we are using am335x style dmtimer clocksource. It is unclear
249 /* Quirk am437x using am335x style dmtimer clocksource */ in dmtimer_systimer_assign_alwon()
274 /* Usually no need for dmtimer clocksource if we have counter32 */ in dmtimer_systimer_assign_alwon()
[all …]
Dh8300_timer16.c10 #include <linux/clocksource.h>
27 struct clocksource cs;
71 static inline struct timer16_priv *cs_to_priv(struct clocksource *cs) in cs_to_priv()
76 static u64 timer16_clocksource_read(struct clocksource *cs) in timer16_clocksource_read()
87 static int timer16_enable(struct clocksource *cs) in timer16_enable()
103 static void timer16_disable(struct clocksource *cs) in timer16_disable()
139 pr_err("failed to get clock for clocksource\n"); in h8300_16timer_init()
146 pr_err("failed to map registers for clocksource\n"); in h8300_16timer_init()
152 pr_err("failed to map registers for clocksource\n"); in h8300_16timer_init()
174 pr_err("failed to request irq %d of clocksource\n", irq); in h8300_16timer_init()
Dh8300_tpu.c12 #include <linux/clocksource.h>
26 struct clocksource cs;
63 static inline struct tpu_priv *cs_to_priv(struct clocksource *cs) in cs_to_priv()
68 static u64 tpu_clocksource_read(struct clocksource *cs) in tpu_clocksource_read()
82 static int tpu_clocksource_enable(struct clocksource *cs) in tpu_clocksource_enable()
97 static void tpu_clocksource_disable(struct clocksource *cs) in tpu_clocksource_disable()
131 pr_err("failed to get clock for clocksource\n"); in h8300_tpu_init()
137 pr_err("failed to map registers for clocksource\n"); in h8300_tpu_init()
142 pr_err("failed to map registers for clocksource\n"); in h8300_tpu_init()
Dtimer-pistachio.c2 * Pistachio clocksource based on general-purpose timers
14 #include <linux/clocksource.h>
51 struct clocksource cs;
71 pistachio_clocksource_read_cycles(struct clocksource *cs) in pistachio_clocksource_read_cycles()
95 static void pistachio_clksrc_set_mode(struct clocksource *cs, int timeridx, in pistachio_clksrc_set_mode()
110 static void pistachio_clksrc_enable(struct clocksource *cs, int timeridx) in pistachio_clksrc_enable()
120 static void pistachio_clksrc_disable(struct clocksource *cs, int timeridx) in pistachio_clksrc_disable()
126 static int pistachio_clocksource_enable(struct clocksource *cs) in pistachio_clocksource_enable()
132 static void pistachio_clocksource_disable(struct clocksource *cs) in pistachio_clocksource_disable()
204 /* Disable irq's for clocksource usage */ in pistachio_clksrc_of_init()
Ddw_apb_timer.c44 clocksource_to_dw_apb_clocksource(struct clocksource *cs) in clocksource_to_dw_apb_clocksource()
320 * dw_apb_clocksource_start() - start the clocksource counting.
322 * @dw_cs: The clocksource to start.
324 * This is used to start the clocksource before registration and can be used
346 static u64 __apbt_read_clocksource(struct clocksource *cs) in __apbt_read_clocksource()
358 static void apbt_restart_clocksource(struct clocksource *cs) in apbt_restart_clocksource()
367 * dw_apb_clocksource_init() - use an APB timer as a clocksource.
369 * @rating: The rating to give the clocksource.
370 * @name: The name for the clocksource.
374 * This creates a clocksource using an APB timer but does not yet register it
[all …]
/kernel/linux/linux-6.6/drivers/clocksource/
Dmmio.c3 * Generic MMIO clocksource support
5 #include <linux/clocksource.h>
12 struct clocksource clksrc;
15 static inline struct clocksource_mmio *to_mmio_clksrc(struct clocksource *c) in to_mmio_clksrc()
20 u64 clocksource_mmio_readl_up(struct clocksource *c) in clocksource_mmio_readl_up()
25 u64 clocksource_mmio_readl_down(struct clocksource *c) in clocksource_mmio_readl_down()
30 u64 clocksource_mmio_readw_up(struct clocksource *c) in clocksource_mmio_readw_up()
35 u64 clocksource_mmio_readw_down(struct clocksource *c) in clocksource_mmio_readw_down()
41 * clocksource_mmio_init - Initialize a simple mmio based clocksource
43 * @name: Name of the clocksource
[all …]
DKconfig181 where TIMER0 serves as clockevent and TIMER1 serves as clocksource.
197 bool "Nomakdik clocksource driver" if COMPILE_TEST
206 bool "Clocksource PRCMU Timer" if COMPILE_TEST
209 Use the always on PRCMU Timer as clocksource.
244 bool "Clocksource for LPC32XX" if COMPILE_TEST
250 Support for the LPC32XX clocksource.
253 bool "Clocksource for Pistachio SoC"
258 Enables the clocksource for the Pistachio SoC.
261 bool "Texas Instruments 32.768 Hz Clocksource" if COMPILE_TEST
265 This option enables support for Texas Instruments 32.768 Hz clocksource
[all …]
Dtimer-vt8500.c17 #include <linux/clocksource.h>
43 static u64 vt8500_timer_read(struct clocksource *cs) in vt8500_timer_read()
53 static struct clocksource clocksource = { variable
65 u64 alarm = clocksource.read(&clocksource) + cycles; in vt8500_timer_set_next_event()
71 if ((signed)(alarm - clocksource.read(&clocksource)) <= MIN_OSCR_DELTA) in vt8500_timer_set_next_event()
126 ret = clocksource_register_hz(&clocksource, VT8500_TIMER_HZ); in vt8500_timer_init()
129 __func__, clocksource.name); in vt8500_timer_init()
Dtimer-ti-dm-systimer.c3 #include <linux/clocksource.h>
17 #include <clocksource/timer-ti-dm.h>
30 static u32 clocksource; variable
60 struct clocksource dev;
148 * typically no use for a dmtimer clocksource if the 32 KiHz counter is
223 * clockevent or clocksource depending if the counter_32k is available on the
231 * clock as the clocksource, and any available dmtimer as clockevent.
233 * For am437x, we are using am335x style dmtimer clocksource. It is unclear
249 /* Quirk am437x using am335x style dmtimer clocksource */ in dmtimer_systimer_assign_alwon()
274 /* Usually no need for dmtimer clocksource if we have counter32 */ in dmtimer_systimer_assign_alwon()
[all …]
Dtimer-pistachio.c3 * Pistachio clocksource based on general-purpose timers
11 #include <linux/clocksource.h>
48 struct clocksource cs;
68 pistachio_clocksource_read_cycles(struct clocksource *cs) in pistachio_clocksource_read_cycles()
93 static void pistachio_clksrc_set_mode(struct clocksource *cs, int timeridx, in pistachio_clksrc_set_mode()
108 static void pistachio_clksrc_enable(struct clocksource *cs, int timeridx) in pistachio_clksrc_enable()
118 static void pistachio_clksrc_disable(struct clocksource *cs, int timeridx) in pistachio_clksrc_disable()
124 static int pistachio_clocksource_enable(struct clocksource *cs) in pistachio_clocksource_enable()
130 static void pistachio_clocksource_disable(struct clocksource *cs) in pistachio_clocksource_disable()
202 /* Disable irq's for clocksource usage */ in pistachio_clksrc_of_init()
Ddw_apb_timer.c44 clocksource_to_dw_apb_clocksource(struct clocksource *cs) in clocksource_to_dw_apb_clocksource()
320 * dw_apb_clocksource_start() - start the clocksource counting.
322 * @dw_cs: The clocksource to start.
324 * This is used to start the clocksource before registration and can be used
346 static u64 __apbt_read_clocksource(struct clocksource *cs) in __apbt_read_clocksource()
358 static void apbt_restart_clocksource(struct clocksource *cs) in apbt_restart_clocksource()
367 * dw_apb_clocksource_init() - use an APB timer as a clocksource.
369 * @rating: The rating to give the clocksource.
370 * @name: The name for the clocksource.
374 * This creates a clocksource using an APB timer but does not yet register it
[all …]
Dhyperv_timer.c4 * Clocksource driver for the synthetic counter and timers
17 #include <linux/clocksource.h>
25 #include <clocksource/hyperv_timer.h>
43 * interrupts are enabled for other clocksource drivers.
318 * clocksource driver just to set the sint in the legacy case. in hv_stimer_legacy_init()
427 static u64 notrace read_hv_clock_tsc_cs(struct clocksource *arg) in read_hv_clock_tsc_cs()
438 static void suspend_hv_clock_tsc(struct clocksource *arg) in suspend_hv_clock_tsc()
449 static void resume_hv_clock_tsc(struct clocksource *arg) in resume_hv_clock_tsc()
472 static int hv_cs_enable(struct clocksource *cs) in hv_cs_enable()
479 static struct clocksource hyperv_cs_tsc = {
[all …]
/kernel/linux/linux-6.6/tools/testing/selftests/timers/
Dclocksource-switch.c1 /* Clocksource change test
6 * NOTE: This is a meta-test which quickly changes the clocksource and
12 * $ gcc clocksource-switch.c -o clocksource-switch -lrt
47 fd = open("/sys/devices/system/clocksource/clocksource0/available_clocksource", O_RDONLY); in get_clocksources()
79 fd = open("/sys/devices/system/clocksource/clocksource0/current_clocksource", O_RDONLY); in get_cur_clocksource()
86 int change_clocksource(char *clocksource) in change_clocksource() argument
91 fd = open("/sys/devices/system/clocksource/clocksource0/current_clocksource", O_WRONLY); in change_clocksource()
96 size = write(fd, clocksource, strlen(clocksource)); in change_clocksource()
159 ksft_print_msg("Validating clocksource %s\n", in main()
189 ksft_test_result(!status, "clocksource-switch\n"); in main()
/kernel/linux/linux-5.10/tools/testing/selftests/timers/
Dclocksource-switch.c1 /* Clocksource change test
12 * $ gcc clocksource-switch.c -o clocksource-switch -lrt
47 fd = open("/sys/devices/system/clocksource/clocksource0/available_clocksource", O_RDONLY); in get_clocksources()
79 fd = open("/sys/devices/system/clocksource/clocksource0/current_clocksource", O_RDONLY); in get_cur_clocksource()
86 int change_clocksource(char *clocksource) in change_clocksource() argument
91 fd = open("/sys/devices/system/clocksource/clocksource0/current_clocksource", O_WRONLY); in change_clocksource()
96 size = write(fd, clocksource, strlen(clocksource)); in change_clocksource()
139 printf("Validating clocksource %s\n", clocksource_list[i]); in main()

12345678910>>...32