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

Commit 6c38d857 authored by Philippe De Muyter's avatar Philippe De Muyter Committed by Linus Torvalds
Browse files

m68knommu: init coldfire timer TRR with n - 1, not n



The coldfire timer must be initialised to n - 1 if we want it to count n
cycles between each tick interrupt.  This was already fixed, but has been
lost with the conversion to GENERIC_TIMER.

Signed-off-by: default avatarPhilippe De Muyter <phdm@macqel.be>
Acked-by: default avatarGreg Ungerer <gerg@snapgear.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 67dddaad
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -111,7 +111,13 @@ void hw_timer_init(void)

	__raw_writew(MCFTIMER_TMR_DISABLE, TA(MCFTIMER_TMR));
	mcftmr_cycles_per_jiffy = FREQ / HZ;
	__raw_writetrr(mcftmr_cycles_per_jiffy, TA(MCFTIMER_TRR));
	/*
	 *	The coldfire timer runs from 0 to TRR included, then 0
	 *	again and so on.  It counts thus actually TRR + 1 steps
	 *	for 1 tick, not TRR.  So if you want n cycles,
	 *	initialize TRR with n - 1.
	 */
	__raw_writetrr(mcftmr_cycles_per_jiffy - 1, TA(MCFTIMER_TRR));
	__raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 |
		MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR));