clocksource: arch_timer: make virtual counter access configurable

Add a config option to support virtual counter access from userspace.

Change-Id: Ibdb1fd768b748002b90bfc165612c12c8311f8a2
Signed-off-by: Greg Hackmann <ghackmann@google.com>
Signed-off-by: Venkata Narendra Kumar Gutta <vnkgutta@codeaurora.org>
Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org>
Signed-off-by: Cong Zhang <congzhan@codeaurora.org>
This commit is contained in:
Greg Hackmann 2017-09-19 10:55:17 -07:00 • committed by Gerrit - the friendly Code Review server
commit dc9b4c45b2
2 changed files with 10 additions and 1 deletions

View file

@ -385,6 +385,14 @@ config SUN50I_ERRATUM_UNKNOWN1
the Allwinner A64 SoC. The workaround will only be active if the
allwinner,erratum-unknown1 property is found in the timer node.
config ARM_ARCH_TIMER_VCT_ACCESS
bool "Support for ARM architected timer virtual counter access in userspace"
default !ARM64
depends on ARM_ARCH_TIMER
help
This option enables support for reading the ARM architected timer's
virtual counter in userspace.
config ARM_GLOBAL_TIMER
bool "Support for the ARM global timer" if COMPILE_TEST
select TIMER_OF if OF

View file

@ -853,7 +853,8 @@ static void arch_counter_set_user_access(void)
* need to be workaround. The vdso may have been already
* disabled though.
*/
if (arch_timer_this_cpu_has_cntvct_wa())
if (arch_timer_this_cpu_has_cntvct_wa() ||
!IS_ENABLED(CONFIG_ARM_ARCH_TIMER_VCT_ACCESS))
pr_info("CPU%d: Trapping CNTVCT access\n", smp_processor_id());
else
cntkctl |= ARCH_TIMER_USR_VCT_ACCESS_EN;