Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0bf02ce6 authored by Mike Frysinger's avatar Mike Frysinger
Browse files

Blackfin: time-ts: ack gptimer sooner to avoid missing short ints



If the period of a gptimer is fairly low, we might miss an interrupt
by acking it too late (we end up acking the new int as well).

Reported-by: default avatarIsabelle Leonardi <i.leonardi@detracom.fr>
Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent ce24ee46
Loading
Loading
Loading
Loading
+7 −1
Original line number Original line Diff line number Diff line
@@ -206,8 +206,14 @@ irqreturn_t bfin_gptmr0_interrupt(int irq, void *dev_id)
{
{
	struct clock_event_device *evt = dev_id;
	struct clock_event_device *evt = dev_id;
	smp_mb();
	smp_mb();
	evt->event_handler(evt);
	/*
	 * We want to ACK before we handle so that we can handle smaller timer
	 * intervals.  This way if the timer expires again while we're handling
	 * things, we're more likely to see that 2nd int rather than swallowing
	 * it by ACKing the int at the end of this handler.
	 */
	bfin_gptmr0_ack();
	bfin_gptmr0_ack();
	evt->event_handler(evt);
	return IRQ_HANDLED;
	return IRQ_HANDLED;
}
}