Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer fix from Thomas Gleixner: "A single bugfix for an init order problem in the sun4i subarch clockevents code" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: clockevent: sun4i: Fix race condition in the probe code
This commit is contained in:
commit
cb95413971
|
@ -182,6 +182,12 @@ static void __init sun4i_timer_init(struct device_node *node)
|
||||||
/* Make sure timer is stopped before playing with interrupts */
|
/* Make sure timer is stopped before playing with interrupts */
|
||||||
sun4i_clkevt_time_stop(0);
|
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);
|
ret = setup_irq(irq, &sun4i_timer_irq);
|
||||||
if (ret)
|
if (ret)
|
||||||
pr_warn("failed to setup irq %d\n", irq);
|
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 */
|
/* Enable timer0 interrupt */
|
||||||
val = readl(timer_base + TIMER_IRQ_EN_REG);
|
val = readl(timer_base + TIMER_IRQ_EN_REG);
|
||||||
writel(val | TIMER_IRQ_EN(0), 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",
|
CLOCKSOURCE_OF_DECLARE(sun4i, "allwinner,sun4i-a10-timer",
|
||||||
sun4i_timer_init);
|
sun4i_timer_init);
|
||||||
|
|
Loading…
Reference in a new issue