Doc fixes.
[bertos.git] / drv / timer.c
index 3805e3b0189f9c846738151de8e2a8b658076c57..0e756dbb6cb01c435062380cbd60536d0e165520 100644 (file)
@@ -74,7 +74,9 @@
 
 #if CONFIG_KERNEL
        #include <config_kern.h>
-       #include <hw/switch.h>
+       #if CONFIG_KERN_PREEMPTIVE
+               #include <hw/switch.h>
+       #endif
        #if CONFIG_KERN_SIGNALS
                #include <kern/signal.h> /* sig_wait(), sig_check() */
                #include <kern/proc.h>   /* proc_current() */
@@ -263,8 +265,6 @@ void timer_delayHp(hptime_t delay)
  */
 DEFINE_TIMER_ISR
 {
-       SCHEDULER_IRQ_ENTRY;
-
        /*
         * With the Metrowerks compiler, the only way to force the compiler generate
         * an interrupt service routine is to put a pragma directive within the function
@@ -282,7 +282,7 @@ DEFINE_TIMER_ISR
         * to ensure that IRQ is generated by timer source.
         */
        if (!timer_hw_triggered())
-               SCHEDULER_IRQ_EXIT;
+               return;
 
        TIMER_STROBE_ON;
 
@@ -316,8 +316,6 @@ DEFINE_TIMER_ISR
 #endif /* CONFIG_TIMER_DISABLE_EVENTS */
 
        TIMER_STROBE_OFF;
-
-       SCHEDULER_IRQ_EXIT;
 }
 
 MOD_DEFINE(timer)