/openbmc/linux/include/linux/ |
H A D | clocksource.h | 2 /* 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 …]
|
/openbmc/linux/kernel/time/ |
H A D | clocksource.c | 3 * 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 …]
|
H A D | jiffies.c | 3 * 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;
|
H A D | Kconfig | 12 # 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!
|
H A D | clocksource-wdtest.c | 3 * Unit test for the clocksource watchdog. 12 #include <linux/clocksource.h> 34 static u64 wdtest_jiffies_read(struct clocksource *cs) in wdtest_jiffies_read() 39 static struct clocksource clocksource_wdtest_jiffies = { 54 static u64 wdtest_ktime_read(struct clocksource *cs) in wdtest_ktime_read() 72 static void wdtest_ktime_cs_mark_unstable(struct clocksource *cs) in wdtest_ktime_cs_mark_unstable() 74 pr_info("--- Marking %s unstable due to clocksource watchdog.\n", cs->name); in wdtest_ktime_cs_mark_unstable() 82 static struct clocksource clocksource_wdtest_ktime = { 92 /* Reset the clocksource if needed. */
|
/openbmc/linux/drivers/clocksource/ |
H A D | mmio.c | 3 * 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 …]
|
H A D | Kconfig | 181 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 …]
|
H A D | timer-vt8500.c | 17 #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()
|
H A D | timer-ti-dm-systimer.c | 3 #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 …]
|
H A D | timer-pistachio.c | 3 * 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()
|
H A D | dw_apb_timer.c | 44 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 …]
|
H A D | hyperv_timer.c | 4 * 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 …]
|
H A D | timer-ti-32k.c | 7 * Update to use new clocksource/clockevent layers 31 #include <linux/clocksource.h> 36 * 32KHz clocksource ... always available, on pretty most chips except 50 struct clocksource cs; 53 static inline struct ti_32k *to_ti_32k(struct clocksource *cs) in to_ti_32k() 58 static u64 notrace ti_32k_read_cycles(struct clocksource *cs) in ti_32k_read_cycles() 152 pr_info("OMAP clocksource: 32k_counter at 32768 Hz\n"); in ti_32k_timer_init() 156 pr_err("32k_counter: can't register clocksource\n"); in ti_32k_timer_init()
|
H A D | timer-atmel-pit.c | 7 * Converted to ClockSource/ClockEvents by David Brownell. 40 struct clocksource clksrc; 49 static inline struct pit_data *clksrc_to_pit_data(struct clocksource *clksrc) in clksrc_to_pit_data() 70 * Clocksource: just a monotonic counter of MCK/16 cycles. 73 static u64 read_pit_clk(struct clocksource *cs) in read_pit_clk() 94 /* disable irq, leaving the clocksource active */ in pit_clkevt_shutdown() 106 /* update clocksource counter */ in pit_clkevt_set_periodic() 164 * Set up both clocksource and clockevent support. 217 * Register clocksource. The high order bits of PIV are unused, in at91sam926x_pit_dt_init() 229 pr_err("Failed to register clocksource\n"); in at91sam926x_pit_dt_init()
|
H A D | timer-goldfish.c | 5 #include <linux/clocksource.h> 10 #include <clocksource/timer-goldfish.h> 13 struct clocksource cs; 24 static struct goldfish_timer *cs_to_gf(struct clocksource *cs) in cs_to_gf() 29 static u64 goldfish_timer_read(struct clocksource *cs) in goldfish_timer_read() 131 timerdrv->cs = (struct clocksource){ in goldfish_timer_init()
|
H A D | arc_timer.c | 9 * We've designated TIMER0 for clockevents and TIMER1 for clocksource 19 #include <linux/clocksource.h> 58 static u64 arc_read_gfrc(struct clocksource *cs) in arc_read_gfrc() 95 static struct clocksource arc_counter_gfrc = { 110 pr_warn("Global-64-bit-Ctr clocksource not detected\n"); in arc_cs_setup_gfrc() 128 static u64 arc_read_rtc(struct clocksource *cs) in arc_read_rtc() 153 static struct clocksource arc_counter_rtc = { 168 pr_warn("Local-64-bit-Ctr clocksource not detected\n"); in arc_cs_setup_rtc() 196 static u64 arc_read_timer1(struct clocksource *cs) in arc_read_timer1() 206 static struct clocksource arc_counter_timer1 = {
|
H A D | scx200_hrt.c | 5 * This is a clocksource driver for the Geode SCx200's 1 or 27 MHz 15 #include <linux/clocksource.h> 42 static u64 read_hrt(struct clocksource *cs) in read_hrt() 48 static struct clocksource cs_hrt = { 88 MODULE_DESCRIPTION("clocksource on SCx200 HiRes Timer");
|
/openbmc/linux/tools/testing/selftests/timers/ |
H A D | clocksource-switch.c | 1 /* 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 printf("Validating clocksource %s\n", in main() 189 ksft_test_result(!status, "clocksource-switch\n"); in main()
|
/openbmc/linux/arch/mips/alchemy/common/ |
H A D | time.c | 16 * Clocksource/event using the 32.768kHz-clocked Counter1 ('RTC' in the 18 * counter control register, otherwise the CP0 counter clocksource/event 23 #include <linux/clocksource.h> 35 static u64 au1x_counter1_read(struct clocksource *cs) in au1x_counter1_read() 40 static struct clocksource au1x_counter1_clocksource = { 83 * has been detected. If so install the rtcmatch2 clocksource, in alchemy_time_init() 116 /* register counter1 clocksource and event device */ in alchemy_time_init() 130 printk(KERN_INFO "Alchemy clocksource installed\n"); in alchemy_time_init()
|
/openbmc/linux/arch/mips/sgi-ip30/ |
H A D | ip30-timer.c | 3 * ip30-timer.c: Clocksource/clockevent support for the 11 #include <linux/clocksource.h> 22 static u64 ip30_heart_counter_read(struct clocksource *cs) in ip30_heart_counter_read() 27 struct clocksource ip30_heart_clocksource = { 42 struct clocksource *cs = &ip30_heart_clocksource; in ip30_heart_clocksource_init()
|
/openbmc/linux/include/clocksource/ |
H A D | timer-davinci.h | 3 * TI DaVinci clocksource driver 22 * struct davinci_timer_cfg - davinci clocksource driver configuration struct 24 * @irq: clockevent and clocksource interrupt resources 28 * clock half for both clocksource and clockevent and the compare register
|
/openbmc/linux/arch/mips/kernel/ |
H A D | csrc-bcm1480.c | 5 #include <linux/clocksource.h> 19 static u64 bcm1480_hpt_read(struct clocksource *cs) in bcm1480_hpt_read() 24 struct clocksource bcm1480_clocksource = { 39 struct clocksource *cs = &bcm1480_clocksource; in sb1480_clocksource_init()
|
H A D | csrc-ioasic.c | 3 * DEC I/O ASIC's counter clocksource 7 #include <linux/clocksource.h> 16 static u64 dec_ioasic_hpt_read(struct clocksource *cs) in dec_ioasic_hpt_read() 21 static struct clocksource clocksource_dec = {
|
H A D | csrc-sb1250.c | 5 #include <linux/clocksource.h> 35 static u64 sb1250_hpt_read(struct clocksource *cs) in sb1250_hpt_read() 40 struct clocksource bcm1250_clocksource = { 55 struct clocksource *cs = &bcm1250_clocksource; in sb1250_clocksource_init()
|
/openbmc/linux/arch/arm/mach-footbridge/ |
H A D | dc21285-timer.c | 9 #include <linux/clocksource.h> 23 static u64 cksrc_dc21285_read(struct clocksource *cs) in cksrc_dc21285_read() 28 static int cksrc_dc21285_enable(struct clocksource *cs) in cksrc_dc21285_enable() 36 static void cksrc_dc21285_disable(struct clocksource *cs) in cksrc_dc21285_disable() 41 static struct clocksource cksrc_dc21285 = {
|