diff options
Diffstat (limited to 'drivers/clocksource/arm_arch_timer.c')
| -rw-r--r-- | drivers/clocksource/arm_arch_timer.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c index e733a2a1927a..7dd2c615bce2 100644 --- a/drivers/clocksource/arm_arch_timer.c +++ b/drivers/clocksource/arm_arch_timer.c @@ -792,6 +792,13 @@ static __always_inline void set_next_event_mem(const int access, unsigned long e  	u64 cnt;  	ctrl = arch_timer_reg_read(access, ARCH_TIMER_REG_CTRL, clk); + +	/* Timer must be disabled before programming CVAL */ +	if (ctrl & ARCH_TIMER_CTRL_ENABLE) { +		ctrl &= ~ARCH_TIMER_CTRL_ENABLE; +		arch_timer_reg_write(access, ARCH_TIMER_REG_CTRL, ctrl, clk); +	} +  	ctrl |= ARCH_TIMER_CTRL_ENABLE;  	ctrl &= ~ARCH_TIMER_CTRL_IT_MASK;  |