|
|
@@ -182,6 +182,12 @@ static void __init sun4i_timer_init(struct device_node *node)
|
|
|
/* Make sure timer is stopped before playing with interrupts */
|
|
|
sun4i_clkevt_time_stop(0);
|
|
|
|
|
|
+ sun4i_clockevent.cpumask = cpu_possible_mask;
|
|
|
+ sun4i_clockevent.irq = irq;
|
|
|
+
|
|
|
+ clockevents_config_and_register(&sun4i_clockevent, rate,
|
|
|
+ TIMER_SYNC_TICKS, 0xffffffff);
|
|
|
+
|
|
|
ret = setup_irq(irq, &sun4i_timer_irq);
|
|
|
if (ret)
|
|
|
pr_warn("failed to setup irq %d\n", irq);
|
|
|
@@ -189,12 +195,6 @@ static void __init sun4i_timer_init(struct device_node *node)
|
|
|
/* Enable timer0 interrupt */
|
|
|
val = readl(timer_base + TIMER_IRQ_EN_REG);
|
|
|
writel(val | TIMER_IRQ_EN(0), timer_base + TIMER_IRQ_EN_REG);
|
|
|
-
|
|
|
- sun4i_clockevent.cpumask = cpu_possible_mask;
|
|
|
- sun4i_clockevent.irq = irq;
|
|
|
-
|
|
|
- clockevents_config_and_register(&sun4i_clockevent, rate,
|
|
|
- TIMER_SYNC_TICKS, 0xffffffff);
|
|
|
}
|
|
|
CLOCKSOURCE_OF_DECLARE(sun4i, "allwinner,sun4i-a10-timer",
|
|
|
sun4i_timer_init);
|