1
0
Fork 0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-01-24 09:13:20 -05:00
linux/drivers/clocksource
Keqian Zhu 8b7770b877 clocksource/drivers/arm_arch_timer: Correct fault programming of CNTKCTL_EL1.EVNTI
ARM virtual counter supports event stream, it can only trigger an event
when the trigger bit (the value of CNTKCTL_EL1.EVNTI) of CNTVCT_EL0 changes,
so the actual period of event stream is 2^(cntkctl_evnti + 1). For example,
when the trigger bit is 0, then virtual counter trigger an event for every
two cycles.

While we're at it, rework the way we compute the trigger bit position
by making it more obvious that when bits [n:n-1] are both set (with n
being the most significant bit), we pick bit (n + 1).

Fixes: 037f637767 ("drivers: clocksource: add support for ARM architected timer event stream")
Suggested-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20201204073126.6920-3-zhukeqian1@huawei.com
2020-12-05 19:34:04 +01:00
..
acpi_pm.c
arc_timer.c clocksource/drivers/arc_timer: Remove duplicate error message 2020-05-22 23:58:56 +02:00
arm_arch_timer.c clocksource/drivers/arm_arch_timer: Correct fault programming of CNTKCTL_EL1.EVNTI 2020-12-05 19:34:04 +01:00
arm_global_timer.c
armv7m_systick.c
asm9260_timer.c
bcm2835_timer.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
bcm_kona_timer.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
clksrc-dbx500-prcmu.c
clksrc_st_lpc.c
clps711x-timer.c
dummy_timer.c
dw_apb_timer.c clocksource: dw_apb_timer: Make CPU-affiliation being optional 2020-05-23 00:02:41 +02:00
dw_apb_timer_of.c clocksource/drivers/dw_apb_timer_of: Add error handling if no clock available 2020-12-05 19:33:55 +01:00
em_sti.c
exynos_mct.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
h8300_timer8.c clocksource/drivers/h8300_timer8: Fix wrong return value in h8300_8timer_init() 2020-08-24 13:01:38 +02:00
h8300_timer16.c
h8300_tpu.c
hyperv_timer.c hv: clocksource: Add notrace attribute to read_hv_sched_clock_*() functions 2020-09-28 09:04:48 +00:00
i8253.c
ingenic-ost.c clocksource: Add driver for the Ingenic JZ47xx OST 2020-02-27 09:37:29 +01:00
ingenic-sysost.c clocksource/drivers/ingenic: Add support for the Ingenic X1000 OST. 2020-07-23 16:58:09 +02:00
ingenic-timer.c clocksource/drivers/ingenic: Fix section mismatch 2020-12-03 19:16:26 +01:00
jcore-pit.c
Kconfig clocksource/drivers/riscv: Make RISCV_TIMER depends on RISCV_SBI 2020-12-03 19:16:26 +01:00
Makefile clocksource/drivers/nps: Remove EZChip NPS clocksource driver 2020-12-03 19:16:18 +01:00
mips-gic-timer.c clocksource: mips-gic-timer: Mark GIC timer as unstable if ref clock changes 2020-05-23 00:03:16 +02:00
mmio.c
mps2-timer.c clocksource/drivers/mps2-timer: Use semicolons rather than commas to separate statements 2020-10-01 10:07:26 +02:00
mxs_timer.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
nomadik-mtu.c clocksource/drivers/nomadik-mtu: Handle 32kHz clock 2020-07-23 16:57:43 +02:00
numachip.c
renesas-ostm.c
samsung_pwm_timer.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
scx200_hrt.c
sh_cmt.c clocksource/drivers/sh_cmt: Use "kHz" for kilohertz 2020-07-23 16:57:43 +02:00
sh_mtu2.c
sh_tmu.c
timer-armada-370-xp.c clocksource/drivers/armada-370-xp: Use semicolons rather than commas to separate statements 2020-10-02 16:27:28 +02:00
timer-atcpit100.c
timer-atlas7.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
timer-atmel-pit.c
timer-atmel-st.c clocksource/drivers/atmel-st: Remove useless 'status' 2020-04-15 10:57:15 +02:00
timer-atmel-tcb.c clocksource/drivers/timer-atmel-tcb: Add sama5d2 support 2020-07-11 18:58:24 +02:00
timer-cadence-ttc.c clocksource/drivers/cadence_ttc: Fix memory leak in ttc_setup_clockevent() 2020-12-03 19:16:26 +01:00
timer-clint.c clocksource: clint: Export clint_time_val for modules 2020-09-29 23:55:27 -07:00
timer-cs5535.c clocksource/drivers/timer-cs5535: Request irq with non-NULL dev_id 2020-03-12 19:23:06 +01:00
timer-davinci.c clocksource: davinci: axe a pointless __GFP_NOFAIL 2020-04-09 12:13:20 +02:00
timer-digicolor.c
timer-efm32.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
timer-fsl-ftm.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
timer-fttmr010.c clocksource/drivers/fttmr010: Set interrupt and shutdown 2020-02-21 09:28:38 +01:00
timer-gx6605s.c clocksource/drivers/timer-gx6605s: Fixup counter reload 2020-08-24 13:01:39 +02:00
timer-imx-gpt.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
timer-imx-sysctr.c clocksource/drivers/imx-sysctr: Remove unused includes 2020-03-17 10:11:45 +01:00
timer-imx-tpm.c clocksource/drivers/imx-tpm: Add support for ARM64 2020-04-09 16:24:50 +02:00
timer-integrator-ap.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
timer-ixp4xx.c
timer-keystone.c
timer-lpc32xx.c
timer-mediatek.c
timer-meson6.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
timer-microchip-pit64b.c clocksource/drivers/timer-microchip-pit64b: Fix rate for gck 2020-03-16 11:19:37 +01:00
timer-milbeaut.c
timer-mp-csky.c
timer-npcm7xx.c
timer-of.c
timer-of.h
timer-orion.c clocksource/drivers/orion: Add missing clk_disable_unprepare() on error path 2020-12-03 19:16:26 +01:00
timer-owl.c clocksource/drivers/owl: Improve owl_timer_init fail messages 2020-02-27 09:42:00 +01:00
timer-oxnas-rps.c
timer-pistachio.c
timer-prima2.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
timer-probe.c treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
timer-pxa.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
timer-qcom.c
timer-rda.c
timer-riscv.c RISC-V: Remove CLINT related code from timer and arch 2020-08-20 10:58:13 -07:00
timer-rockchip.c
timer-sp.h clocksource/drivers/sp804: Enable Hisilicon sp804 timer 64bit mode 2020-09-24 10:51:04 +02:00
timer-sp804.c clocksource/drivers/sp804: Use pr_fmt 2020-12-03 19:16:18 +01:00
timer-sprd.c
timer-stm32-lp.c clocksource: Add Low Power STM32 timers driver 2020-06-18 11:19:58 +01:00
timer-stm32.c
timer-sun4i.c
timer-sun5i.c
timer-tango-xtal.c
timer-tegra.c
timer-ti-32k.c clocksource/drivers: Replace HTTP links with HTTPS ones 2020-07-23 16:57:43 +02:00
timer-ti-dm-systimer.c clocksource/drivers/timer-ti-dm: Do reset before enable 2020-08-24 13:01:39 +02:00
timer-ti-dm.c clocksource/drivers: Replace HTTP links with HTTPS ones 2020-07-23 16:57:43 +02:00
timer-u300.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
timer-versatile.c clocksource/drivers/timer-versatile: Clear OF_POPULATED flag 2020-05-23 00:03:25 +02:00
timer-vf-pit.c clocksource/drivers/timer-vf-pit: Add missing parenthesis 2020-04-05 09:24:58 +02:00
timer-vt8500.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
timer-zevio.c clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00