msm: timer: Fix ONESHOT mode interrupts
authorStephen Boyd <sboyd@codeaurora.org>
Tue, 8 Nov 2011 18:34:06 +0000 (10:34 -0800)
committerDavid Brown <davidb@codeaurora.org>
Thu, 10 Nov 2011 18:36:33 +0000 (10:36 -0800)
commita850c3f6446d30b47c984d3f9e45c935385fd592
treea859b3efb8dbdfe7e6498f7b93028d39ef6c5397
parentdd15ab814149df65187943c32ca09e4eeaac0047
msm: timer: Fix ONESHOT mode interrupts

MSM timers don't support an interrupt enable/disable bit.
Therefore, when the timer is free running it's possible for the
count to wrap and the match value to match again even though a
set_next_event() call hasn't been made since the last match.

Workaround the lack of an interrupt enable bit by explicitly
stopping the timer in the interrupt handler when the clockevent
is in ONESHOT mode. This should prevent any possibility of the
timer wrapping and matching more than once per set_next_event().

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: David Brown <davidb@codeaurora.org>
arch/arm/mach-msm/timer.c