linux/drivers/clocksource
Will Deacon 037f637767 drivers: clocksource: add support for ARM architected timer event stream
The ARM architected timer can generate events (used for waking up
CPUs executing the wfe instruction) at a frequency represented as a
power-of-2 divisor of the clock rate.

An event stream might be used:
- To implement wfe-based timeouts for userspace locking implementations.
- To impose a timeout on a wfe for safeguarding against any programming
  error in case an expected event is not generated.

This patch computes the event stream frequency aiming for a period
of 100us between events. It uses ARM/ARM64 specific backends to configure
and enable the event stream.

Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Will Deacon <will.deacon@arm.com>
[sudeep: moving ARM/ARM64 changes into separate patches
         and adding Kconfig option]
Signed-off-by: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
2013-09-26 09:48:00 +01:00
..
acpi_pm.c treewide: Fix printks with 0x%# 2013-08-27 10:49:38 +02:00
arm_arch_timer.c drivers: clocksource: add support for ARM architected timer event stream 2013-09-26 09:48:00 +01:00
arm_global_timer.c clocksource+irqchip: delete __cpuinit usage from all related files 2013-07-14 19:36:57 -04:00
bcm2835_timer.c sched_clock: Make ARM's sched_clock generic for all architectures 2013-06-12 14:02:13 -07:00
bcm_kona_timer.c ARM: DT: binding fixup to align with vendor-prefixes.txt (drivers) 2013-08-20 10:51:38 -07:00
cadence_ttc_timer.c clocksource: cadence_ttc: Reuse clocksource as sched_clock 2013-07-18 15:27:34 +02:00
clksrc-dbx500-prcmu.c Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-07-06 14:09:38 -07:00
clksrc-of.c clocksource: make CLOCKSOURCE_OF_DECLARE type safe 2013-03-28 12:01:06 +01:00
cs5535-clockevt.c clocksource: use clockevents_config_and_register() where possible 2013-01-14 10:12:42 -08:00
cyclone.c clocksource: cyclone: Add missing iounmap 2012-01-26 19:30:40 -08:00
dummy_timer.c clocksource+irqchip: delete __cpuinit usage from all related files 2013-07-14 19:36:57 -04:00
dw_apb_timer_of.c Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-07-06 14:09:38 -07:00
dw_apb_timer.c Revert "dw_apb_timer_of.c: Remove parts that were picoxcell-specific" 2013-06-18 16:02:04 -07:00
em_sti.c clocksource: em_sti: Convert to devm_* managed helpers 2013-08-22 00:18:42 +02:00
exynos_mct.c Now that we have a generic arch hook for broadcast we can remove the local 2013-07-23 16:54:15 -07:00
i8253.c time: Kill xtime_lock, replacing it with jiffies_lock 2012-11-13 14:08:23 -05:00
Kconfig drivers: clocksource: add support for ARM architected timer event stream 2013-09-26 09:48:00 +01:00
Makefile ARM: clocksource: Add support for MOXA ART SoCs 2013-07-18 15:27:47 +02:00
metag_generic.c clocksource+irqchip: delete __cpuinit usage from all related files 2013-07-14 19:36:57 -04:00
mmio.c clocksource: add common mmio clocksource 2011-05-23 18:04:51 +01:00
moxart_timer.c ARM: clocksource: moxart: Add bitops.h include 2013-08-01 01:13:34 +02:00
mxs_timer.c sched_clock: Make ARM's sched_clock generic for all architectures 2013-06-12 14:02:13 -07:00
nomadik-mtu.c ARM: nomadik: add dynamic irq flag to the timer 2013-08-22 00:18:50 +02:00
samsung_pwm_timer.c The common clk framework changes for 3.12 are dominated by clock driver 2013-09-09 15:49:04 -07:00
scx200_hrt.c clocksource: scx200_hrt: Fix the build 2012-02-22 13:25:16 +01:00
sh_cmt.c clocksource: sh_cmt: 32-bit control register support 2013-08-22 00:18:45 +02:00
sh_mtu2.c clocksource: sh_mtu2: Set initcall level to subsys 2013-03-13 02:24:37 +09:00
sh_tmu.c clocksource: sh_tmu: Set initcall level to subsys 2013-03-13 02:24:36 +09:00
sun4i_timer.c clocksource: sun4i: Fix bug when switching from periodic to oneshot modes 2013-07-18 15:27:21 +02:00
tcb_clksrc.c clocksource: use clockevents_config_and_register() where possible 2013-01-14 10:12:42 -08:00
tegra20_timer.c sched_clock: Make ARM's sched_clock generic for all architectures 2013-06-12 14:02:13 -07:00
time-armada-370-xp.c Merge branch 'timers/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-09-16 16:10:26 -04:00
time-orion.c clocksource: orion: Use linux/sched_clock.h 2013-07-17 20:28:00 -07:00
timer-marco.c Now that we have a generic arch hook for broadcast we can remove the local 2013-07-23 16:54:15 -07:00
timer-prima2.c sched_clock: Make ARM's sched_clock generic for all architectures 2013-06-12 14:02:13 -07:00
vf_pit_timer.c clocksource: vf_pit_timer: Use linux/sched_clock.h 2013-06-25 01:41:48 +02:00
vt8500_timer.c clocksource: make CLOCKSOURCE_OF_DECLARE type safe 2013-03-28 12:01:06 +01:00
zevio-timer.c clocksource: Add TI-Nspire timer support 2013-06-06 17:23:13 +02:00