aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ns9xxx/time.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-ns9xxx/time.c')
-rw-r--r--arch/arm/mach-ns9xxx/time.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/mach-ns9xxx/time.c b/arch/arm/mach-ns9xxx/time.c
index b97d0c54a388..3327d302618d 100644
--- a/arch/arm/mach-ns9xxx/time.c
+++ b/arch/arm/mach-ns9xxx/time.c
@@ -24,10 +24,24 @@ static u32 usecs_per_tick;
24static irqreturn_t 24static irqreturn_t
25ns9xxx_timer_interrupt(int irq, void *dev_id) 25ns9xxx_timer_interrupt(int irq, void *dev_id)
26{ 26{
27 int timerno = irq - IRQ_TIMER0;
28 u32 tc;
29
27 write_seqlock(&xtime_lock); 30 write_seqlock(&xtime_lock);
28 timer_tick(); 31 timer_tick();
29 write_sequnlock(&xtime_lock); 32 write_sequnlock(&xtime_lock);
30 33
34 /* clear irq */
35 tc = SYS_TC(timerno);
36 if (REGGET(tc, SYS_TCx, REN) == SYS_TCx_REN_DIS) {
37 REGSET(tc, SYS_TCx, TEN, DIS);
38 SYS_TC(timerno) = tc;
39 }
40 REGSET(tc, SYS_TCx, INTC, SET);
41 SYS_TC(timerno) = tc;
42 REGSET(tc, SYS_TCx, INTC, UNSET);
43 SYS_TC(timerno) = tc;
44
31 return IRQ_HANDLED; 45 return IRQ_HANDLED;
32} 46}
33 47