ARM: clockevents: fix IOP clock events initialization
Ensure that no interrupt is pending before registering the clock event device, and properly initialize the periodic tick in the ->set_mode callback. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
83cf1eecfe
commit
40cc524400
|
@ -87,6 +87,7 @@ static void iop_set_mode(enum clock_event_mode mode,
|
||||||
case CLOCK_EVT_MODE_PERIODIC:
|
case CLOCK_EVT_MODE_PERIODIC:
|
||||||
write_tmr0(tmr & ~IOP_TMR_EN);
|
write_tmr0(tmr & ~IOP_TMR_EN);
|
||||||
write_tcr0(ticks_per_jiffy - 1);
|
write_tcr0(ticks_per_jiffy - 1);
|
||||||
|
write_trr0(ticks_per_jiffy - 1);
|
||||||
tmr |= (IOP_TMR_RELOAD | IOP_TMR_EN);
|
tmr |= (IOP_TMR_RELOAD | IOP_TMR_EN);
|
||||||
break;
|
break;
|
||||||
case CLOCK_EVT_MODE_ONESHOT:
|
case CLOCK_EVT_MODE_ONESHOT:
|
||||||
|
@ -152,6 +153,7 @@ void __init iop_init_time(unsigned long tick_rate)
|
||||||
* Set up interrupting clockevent timer 0.
|
* Set up interrupting clockevent timer 0.
|
||||||
*/
|
*/
|
||||||
write_tmr0(timer_ctl & ~IOP_TMR_EN);
|
write_tmr0(timer_ctl & ~IOP_TMR_EN);
|
||||||
|
write_tisr(1);
|
||||||
setup_irq(IRQ_IOP_TIMER0, &iop_timer_irq);
|
setup_irq(IRQ_IOP_TIMER0, &iop_timer_irq);
|
||||||
clockevents_calc_mult_shift(&iop_clockevent,
|
clockevents_calc_mult_shift(&iop_clockevent,
|
||||||
tick_rate, IOP_MIN_RANGE);
|
tick_rate, IOP_MIN_RANGE);
|
||||||
|
@ -161,9 +163,6 @@ void __init iop_init_time(unsigned long tick_rate)
|
||||||
clockevent_delta2ns(0xf, &iop_clockevent);
|
clockevent_delta2ns(0xf, &iop_clockevent);
|
||||||
iop_clockevent.cpumask = cpumask_of(0);
|
iop_clockevent.cpumask = cpumask_of(0);
|
||||||
clockevents_register_device(&iop_clockevent);
|
clockevents_register_device(&iop_clockevent);
|
||||||
write_trr0(ticks_per_jiffy - 1);
|
|
||||||
write_tcr0(ticks_per_jiffy - 1);
|
|
||||||
write_tmr0(timer_ctl);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set up free-running clocksource timer 1.
|
* Set up free-running clocksource timer 1.
|
||||||
|
|
Loading…
Reference in New Issue