The only way to write LATCHED registers to write LATCH_BIT to LATCH register, that will latch COUNTER into LATCHED.e.g. writel_relaxed(SIRFSOC_TIMER_LATCH_BIT, sirfsoc_timer_base + SIRFSOC_TIMER_LATCH); Writing values to LATCHED registers directly is useless at all.
Unified · Split
| @@ -132,11 +132,11 @@ static void sirfsoc_clocksource_resume(struct clocksource *cs) · 131 unmodified lines | ||
| 132 | 132 | { |
| 133 | 133 | int i; |
| 134 | 134 | |
| 135 | − for (i = 0; i < SIRFSOC_TIMER_REG_CNT; i++) | |
| 135 | + for (i = 0; i < SIRFSOC_TIMER_REG_CNT - 2; i++) | |
| 136 | 136 | writel_relaxed(sirfsoc_timer_reg_val[i], sirfsoc_timer_base + sirfsoc_timer_reg_list[i]); |
| 137 | 137 | |
| 138 | − writel_relaxed(sirfsoc_timer_reg_val[i - 2], sirfsoc_timer_base + SIRFSOC_TIMER_COUNTER_LO); | |
| 139 | − writel_relaxed(sirfsoc_timer_reg_val[i - 1], sirfsoc_timer_base + SIRFSOC_TIMER_COUNTER_HI); | |
| 138 | + writel_relaxed(sirfsoc_timer_reg_val[SIRFSOC_TIMER_REG_CNT - 2], sirfsoc_timer_base + SIRFSOC_TIMER_COUNTER_LO); | |
| 139 | + writel_relaxed(sirfsoc_timer_reg_val[SIRFSOC_TIMER_REG_CNT - 1], sirfsoc_timer_base + SIRFSOC_TIMER_COUNTER_HI); | |
| 140 | 140 | } |
| 141 | 141 | |
| 142 | 142 | static struct clock_event_device sirfsoc_clockevent = { |