patch-2.4.22 linux-2.4.22/include/asm-arm/arch-sa1100/time.h
Next file: linux-2.4.22/include/asm-arm/arch-shark/memory.h
Previous file: linux-2.4.22/include/asm-arm/arch-sa1100/system.h
Back to the patch index
Back to the overall index
- Lines: 33
- Date:
2003-08-25 04:44:43.000000000 -0700
- Orig file:
linux-2.4.21/include/asm-arm/arch-sa1100/time.h
- Orig date:
2002-08-02 17:39:45.000000000 -0700
diff -urN linux-2.4.21/include/asm-arm/arch-sa1100/time.h linux-2.4.22/include/asm-arm/arch-sa1100/time.h
@@ -65,24 +65,20 @@
static void sa1100_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
- long flags;
- int next_match;
+ unsigned int next_match;
+ unsigned long flags;
- /* Loop until we get ahead of the free running timer.
- * This ensures an exact clock tick count and time acuracy.
- * 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.
- */
do {
do_leds();
- do_set_rtc();
- save_flags_cli( flags );
+ local_irq_save(flags);
do_timer(regs);
OSSR = OSSR_M0; /* Clear match on timer 0 */
next_match = (OSMR0 += LATCH);
- restore_flags( flags );
- } while( (signed long)(next_match - OSCR) <= 0 );
+ local_irq_restore(flags);
+ do_set_rtc();
+ } while ((signed long)(next_match - OSCR) <= 0);
+
+ do_profile(regs);
}
static inline void setup_timer (void)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)