diff options
Diffstat (limited to 'arch/arm/include/asm/arch_timer.h')
-rw-r--r-- | arch/arm/include/asm/arch_timer.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/include/asm/arch_timer.h b/arch/arm/include/asm/arch_timer.h index 75975d9efd3f..729f6d98df86 100644 --- a/arch/arm/include/asm/arch_timer.h +++ b/arch/arm/include/asm/arch_timer.h | |||
@@ -106,6 +106,18 @@ static inline u64 arch_counter_get_cntvct(void) | |||
106 | asm volatile("mrrc p15, 1, %Q0, %R0, c14" : "=r" (cval)); | 106 | asm volatile("mrrc p15, 1, %Q0, %R0, c14" : "=r" (cval)); |
107 | return cval; | 107 | return cval; |
108 | } | 108 | } |
109 | |||
110 | static inline void __cpuinit arch_counter_set_user_access(void) | ||
111 | { | ||
112 | u32 cntkctl; | ||
113 | |||
114 | asm volatile("mrc p15, 0, %0, c14, c1, 0" : "=r" (cntkctl)); | ||
115 | |||
116 | /* disable user access to everything */ | ||
117 | cntkctl &= ~((3 << 8) | (7 << 0)); | ||
118 | |||
119 | asm volatile("mcr p15, 0, %0, c14, c1, 0" : : "r" (cntkctl)); | ||
120 | } | ||
109 | #else | 121 | #else |
110 | static inline int arch_timer_of_register(void) | 122 | static inline int arch_timer_of_register(void) |
111 | { | 123 | { |