zephyr/drivers/timer
Andy Ross ec6a98e5e1 drivers/timer/cavs_timer: Prevent spurious interrupts
The HDA wall clock timer is a 64 bit timer with 64 bit compare
registers, but it's being used from a 32 bit CPU.  Writing the
comparator piecewise with a 64 bit C assignment will write the low
dword first, opening the possibility that the hardware will see time
go "backwards" and trigger an interrupt incorrectly.

Disable the enable bit while setting the comparator.

Found by inspection.  In practice this will be very rare, and spurious
timer interrupts are supposed to be benign anyway (though they can
result in timeout expirations being misaligned to ticks, which might
be surprising to applications).  Best to get it right.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2020-10-21 06:38:53 -04:00
..
altera_avalon_timer_hal.c benchmarking: remove execution benchmarking code 2020-09-05 13:28:38 -05:00
apic_timer.c isr: Normalize usage of device instance through ISR 2020-09-02 13:48:13 +02:00
arcv2_timer0.c isr: Normalize usage of device instance through ISR 2020-09-02 13:48:13 +02:00
arm_arch_timer.c isr: Normalize usage of device instance through ISR 2020-09-02 13:48:13 +02:00
cavs_timer.c drivers/timer/cavs_timer: Prevent spurious interrupts 2020-10-21 06:38:53 -04:00
cc13x2_cc26x2_rtc_timer.c isr: Normalize usage of device instance through ISR 2020-09-02 13:48:13 +02:00
CMakeLists.txt cmake: remove _if_kconfig() functions 2020-08-01 12:35:20 +02:00
cortex_m_systick.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
hpet.c benchmarking: remove execution benchmarking code 2020-09-05 13:28:38 -05:00
Kconfig drivers: timer: nrf: Add configurable clock startup mode 2020-09-10 21:31:01 +02:00
Kconfig.stm32_lptim drivers: timer: lptim: depend on SYS_POWER_MANAGEMENT 2020-06-09 08:15:56 -04:00
legacy_api.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
litex_timer.c isr: Normalize usage of device instance through ISR 2020-09-02 13:48:13 +02:00
loapic_timer.c benchmarking: remove execution benchmarking code 2020-09-05 13:28:38 -05:00
mchp_xec_rtos_timer.c benchmarking: remove execution benchmarking code 2020-09-05 13:28:38 -05:00
native_posix_timer.c isr: Normalize usage of device instance through ISR 2020-09-02 13:48:13 +02:00
nrf_rtc_timer.c drivers: timer: nrf_rtc_timer: Use interrupt priority from DT 2020-10-06 15:34:34 +02:00
riscv_machine_timer.c isr: Normalize usage of device instance through ISR 2020-09-02 13:48:13 +02:00
rv32m1_lptmr_timer.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
sam0_rtc_timer.c isr: Normalize usage of device instance through ISR 2020-09-02 13:48:13 +02:00
stm32_lptim_timer.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
sys_clock_init.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
xlnx_psttc_timer_priv.h drivers: timer: xlnx_psttc_timer: Implement tickless support 2020-03-21 14:20:17 -04:00
xlnx_psttc_timer.c isr: Normalize usage of device instance through ISR 2020-09-02 13:48:13 +02:00
xtensa_sys_timer.c isr: Normalize usage of device instance through ISR 2020-09-02 13:48:13 +02:00