提交 2783e5d6 编写于 作者: A Alexandre Belloni 提交者: Daniel Lezcano

clocksource/drivers/timer-atmel-pit: Simplify IRQ handler

Because the PIT is also a proper clocksource, the timekeeping code  is
already able to handle lost ticks.
Reported-by: NThomas Gleixner <tglx@linutronix.de>
Acked-by: NNicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: NAlexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
上级 0d41ec8d
...@@ -152,15 +152,10 @@ static irqreturn_t at91sam926x_pit_interrupt(int irq, void *dev_id) ...@@ -152,15 +152,10 @@ static irqreturn_t at91sam926x_pit_interrupt(int irq, void *dev_id)
/* The PIT interrupt may be disabled, and is shared */ /* The PIT interrupt may be disabled, and is shared */
if (clockevent_state_periodic(&data->clkevt) && if (clockevent_state_periodic(&data->clkevt) &&
(pit_read(data->base, AT91_PIT_SR) & AT91_PIT_PITS)) { (pit_read(data->base, AT91_PIT_SR) & AT91_PIT_PITS)) {
unsigned nr_ticks;
/* Get number of ticks performed before irq, and ack it */ /* Get number of ticks performed before irq, and ack it */
nr_ticks = PIT_PICNT(pit_read(data->base, AT91_PIT_PIVR)); data->cnt += data->cycle * PIT_PICNT(pit_read(data->base,
do { AT91_PIT_PIVR));
data->cnt += data->cycle; data->clkevt.event_handler(&data->clkevt);
data->clkevt.event_handler(&data->clkevt);
nr_ticks--;
} while (nr_ticks);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册