zephyr/drivers/timer
Nicolas Pitre 0ea64b3ecb riscv_machine_timer: fix maximum allowed cycles between reports
There are two issues being fixed here:

1) The code currently clamps timeout length so not to overflow the
   computed cycle difference variable or the sys_clock_announce()
   argument's range. But this completely fails to take into account
   the case where two successive timeouts with enough time between them
   will still overflow the cycle difference and/or the tick count.

2) If a timeout with K_TICKS_FOREVER is provided then the comparator is
   set with UINT64_MAX which is bogus. Not only this value doesn't make
   much sense in the context of a running cycle counter, but it also
   opens the possibility for the same cycle diff and/or ticks overflow
   as above.

Fix both of those by clamping the actual number of cycles to wait for
based on the previous report occurrence rather than clamping the timeout
ticks.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2024-05-07 21:22:12 -04:00
..
altera_avalon_timer_hal.c
ambiq_stimer.c drivers: timer: Add support for Apollo3 SoCs system timer (STIMER) 2024-05-07 18:57:19 +02:00
apic_timer.c
apic_tsc.c Revert "drivers: timer: tsc: retrieve clock frequency of system timer at runtime" 2024-05-06 14:52:29 +03:00
arcv2_timer0.c
arm_arch_timer.c drivers/timer/arm_arch_timer: Fix cycles overflow with GDB stub 2023-12-18 09:31:42 +01:00
cc13xx_cc26xx_rtc_timer.c
CMakeLists.txt drivers: timer: Add timer driver to Renesas SmartBond(tm) 2024-04-25 16:17:53 +02:00
cortex_m_systick.c
esp32_sys_timer.c drivers: esp32: update to hal_espressif v5.1 2024-04-05 13:39:53 +02:00
gecko_burtc_timer.c
hpet.c x86: revert removing soc.h from atom soc 2024-03-04 20:07:30 +01:00
intel_adsp_timer.c ADSP: don't use timer interrupts on secondary cores 2024-03-19 14:30:47 +01:00
ite_it8xxx2_timer.c drivers: timer: it8xxx2: enhances the accuracy of hw cycle calculation 2024-03-15 17:11:33 -04:00
Kconfig drivers: timer: Add timer driver to Renesas SmartBond(tm) 2024-04-25 16:17:53 +02:00
Kconfig.altera_avalon
Kconfig.ambiq drivers: timer: Add support for Apollo3 SoCs system timer (STIMER) 2024-05-07 18:57:19 +02:00
Kconfig.arcv2
Kconfig.arm_arch
Kconfig.cavs
Kconfig.cc13xx_cc26xx_rtc
Kconfig.cortex_m_systick
Kconfig.esp32 drivers: systimer: Removed mention to ESP32C3 2024-03-27 15:18:45 +00:00
Kconfig.gecko hwmv2: Introduce Hardware model version 2 and convert devices 2024-03-02 16:56:33 -05:00
Kconfig.ite_it8xxx2
Kconfig.leon_gptimer
Kconfig.litex
Kconfig.mchp_xec_rtos
Kconfig.mcux_gpt
Kconfig.mcux_lptmr
Kconfig.mcux_os drivers: timer: NXP OS Timer updated for low power modes 2024-03-25 09:35:51 +01:00
Kconfig.mips_cp0
Kconfig.native_posix
Kconfig.npcx_itim
Kconfig.nrf_grtc drivers: timer: fix gRTC Kconfig leak 2024-04-26 19:48:11 +01:00
Kconfig.nrf_rtc drivers: timer: move SYSTEM_CLOCK_WAIT to Kconfig.nrf_xrtc 2024-01-30 21:00:44 +00:00
Kconfig.nrf_xrtc drivers: timer: add GRTC driver 2024-01-30 21:00:44 +00:00
Kconfig.rcar_cmt
Kconfig.riscv_machine
Kconfig.rv32m1_lptmr
Kconfig.sam0_rtc
Kconfig.smartbond drivers: timer: Add timer driver to Renesas SmartBond(tm) 2024-04-25 16:17:53 +02:00
Kconfig.stm32_lptim drivers: timer: stm32 lptim: add support for backup standby timer 2024-01-25 08:55:02 +01:00
Kconfig.x86 hwmv2: Introduce Hardware model version 2 and convert devices 2024-03-02 16:56:33 -05:00
Kconfig.xlnx_psttc
Kconfig.xtensa
leon_gptimer.c
litex_timer.c drivers: timer: litex: add missing include 2024-01-19 15:13:53 +00:00
mchp_xec_rtos_timer.c hwmv2: Introduce Hardware model version 2 and convert devices 2024-03-02 16:56:33 -05:00
mcux_gpt_timer.c
mcux_lptmr_timer.c
mcux_os_timer.c drivers: timer: NXP OS Timer updated for low power modes 2024-03-25 09:35:51 +01:00
mips_cp0_timer.c
native_posix_timer.c
npcx_itim_timer.c
nrf_grtc_timer.c drivers: timer: nrf_grtc_timer: fix return type signedness 2024-04-23 11:07:37 +00:00
nrf_rtc_timer.c drivers: timer: nrf_rtc_timer: Change HAL to HALY in RTC timer driver 2023-12-14 09:28:15 +01:00
rcar_cmt_timer.c
riscv_machine_timer.c riscv_machine_timer: fix maximum allowed cycles between reports 2024-05-07 21:22:12 -04:00
rv32m1_lptmr_timer.c
sam0_rtc_timer.c
smartbond_timer.c soc: arm: smartbond: Add support for extended sleep 2024-04-25 16:17:53 +02:00
stm32_lptim_timer.c drivers: timer: add support for LPTIM on STM32H5 2024-04-08 15:55:24 +03:00
sys_clock_init.c
xlnx_psttc_timer_priv.h
xlnx_psttc_timer.c
xtensa_sys_timer.c