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
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
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
Kconfig.nrf_xrtc
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
Kconfig.x86
Kconfig.xlnx_psttc
Kconfig.xtensa
leon_gptimer.c
litex_timer.c
mchp_xec_rtos_timer.c
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
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