@@ -51,6 +51,8 @@
#define timer_readl(addr) readl_relaxed(regbase + addr)
#define timer_writel(v, addr) writel_relaxed(v, regbase + addr)
+#define MIN_OSCR_DELTA 16
+
static void __iomem *regbase;
static cycle_t vt8500_timer_read(struct clocksource *cs)
@@ -78,7 +80,7 @@ static int vt8500_timer_set_next_event(unsigned long cycles,
cpu_relax();
timer_writel((unsigned long)alarm, TIMER_MATCH_VAL);
- if ((signed)(alarm - clocksource.read(&clocksource)) <= 16)
+ if ((signed)(alarm - clocksource.read(&clocksource)) <= MIN_OSCR_DELTA)
return -ETIME;
timer_writel(1, TIMER_IER_VAL);
@@ -149,7 +151,7 @@ static void __init vt8500_timer_init(struct device_node *np)
pr_err("%s: setup_irq failed for %s\n", __func__,
clockevent.name);
clockevents_config_and_register(&clockevent, VT8500_TIMER_HZ,
- 4, 0xf0000000);
+ MIN_OSCR_DELTA * 2, 0xf0000000);
}
CLOCKSOURCE_OF_DECLARE(vt8500, "via,vt8500-timer", vt8500_timer_init);