Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=26c671c6b7c02bc9f9c42331e6ecbeccdf67164c Commit: 26c671c6b7c02bc9f9c42331e6ecbeccdf67164c Parent: 3945a567d0c1d6721994a88f58f028c27d8249d2 Author: Uwe Kleine-König <[EMAIL PROTECTED]> AuthorDate: Thu Jul 19 22:13:05 2007 +0100 Committer: Russell King <[EMAIL PROTECTED]> CommitDate: Fri Jul 20 10:01:37 2007 +0100
[ARM] 4493/1: ns9xxx: disable a non-reloading timer before ack'ing its irq The HRM states that is must be done this way ... Signed-off-by: Uwe Kleine-König <[EMAIL PROTECTED]> Signed-off-by: Russell King <[EMAIL PROTECTED]> --- arch/arm/mach-ns9xxx/irq.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-ns9xxx/irq.c b/arch/arm/mach-ns9xxx/irq.c index cd8f836..b8c7b00 100644 --- a/arch/arm/mach-ns9xxx/irq.c +++ b/arch/arm/mach-ns9xxx/irq.c @@ -21,6 +21,15 @@ static void ns9xxx_ack_irq_timer(unsigned int irq) { u32 tc = SYS_TC(irq - IRQ_TIMER0); + /* + * If the timer is programmed to halt on terminal count, the + * timer must be disabled before clearing the interrupt. + */ + if (REGGET(tc, SYS_TCx, REN) == 0) { + REGSET(tc, SYS_TCx, TEN, DIS); + SYS_TC(irq - IRQ_TIMER0) = tc; + } + REGSET(tc, SYS_TCx, INTC, SET); SYS_TC(irq - IRQ_TIMER0) = tc; - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html