|
@@ -62,7 +62,10 @@ static int msm_timer_set_next_event(unsigned long cycles,
|
|
|
{
|
|
|
u32 ctrl = readl_relaxed(event_base + TIMER_ENABLE);
|
|
|
|
|
|
- writel_relaxed(0, event_base + TIMER_CLEAR);
|
|
|
+ ctrl &= ~TIMER_ENABLE_EN;
|
|
|
+ writel_relaxed(ctrl, event_base + TIMER_ENABLE);
|
|
|
+
|
|
|
+ writel_relaxed(ctrl, event_base + TIMER_CLEAR);
|
|
|
writel_relaxed(cycles, event_base + TIMER_MATCH_VAL);
|
|
|
writel_relaxed(ctrl | TIMER_ENABLE_EN, event_base + TIMER_ENABLE);
|
|
|
return 0;
|