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

Commit 20e91268 authored by Nicolas Pitre's avatar Nicolas Pitre Committed by Russell King
Browse files

[ARM] 2863/1: clarify comment in PXA2xx and SA1x00 timer code



Patch from Nicolas Pitre

Signed-off-by: default avatarNicolas Pitre <nico@cam.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 5c53ff08
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -91,9 +91,10 @@ pxa_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)


	/* Loop until we get ahead of the free running timer.
	/* Loop until we get ahead of the free running timer.
	 * This ensures an exact clock tick count and time accuracy.
	 * This ensures an exact clock tick count and time accuracy.
	 * IRQs are disabled inside the loop to ensure coherence between
	 * Since IRQs are disabled at this point, coherence between
	 * lost_ticks (updated in do_timer()) and the match reg value, so we
	 * lost_ticks(updated in do_timer()) and the match reg value is
	 * can use do_gettimeofday() from interrupt handlers.
	 * ensured, hence we can use do_gettimeofday() from interrupt
	 * handlers.
	 *
	 *
	 * HACK ALERT: it seems that the PXA timer regs aren't updated right
	 * HACK ALERT: it seems that the PXA timer regs aren't updated right
	 * away in all cases when a write occurs.  We therefore compare with
	 * away in all cases when a write occurs.  We therefore compare with
+8 −9
Original line number Original line Diff line number Diff line
@@ -70,15 +70,6 @@ static unsigned long sa1100_gettimeoffset (void)
	return usec;
	return usec;
}
}


/*
 * We will be entered with IRQs enabled.
 *
 * Loop until we get ahead of the free running timer.
 * This ensures an exact clock tick count and time accuracy.
 * IRQs are disabled inside the loop to ensure coherence between
 * lost_ticks (updated in do_timer()) and the match reg value, so we
 * can use do_gettimeofday() from interrupt handlers.
 */
static irqreturn_t
static irqreturn_t
sa1100_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
sa1100_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
{
@@ -86,6 +77,14 @@ sa1100_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)


	write_seqlock(&xtime_lock);
	write_seqlock(&xtime_lock);


	/*
	 * Loop until we get ahead of the free running timer.
	 * This ensures an exact clock tick count and time accuracy.
	 * Since IRQs are disabled at this point, coherence between
	 * lost_ticks(updated in do_timer()) and the match reg value is
	 * ensured, hence we can use do_gettimeofday() from interrupt
	 * handlers.
	 */
	do {
	do {
		timer_tick(regs);
		timer_tick(regs);
		OSSR = OSSR_M0;  /* Clear match on timer 0 */
		OSSR = OSSR_M0;  /* Clear match on timer 0 */