On Fri, 2006-08-18 at 21:29 +0200, Gilles Chanteperdrix wrote:
> Hi,
> 
> at some point in time, we decided to trigger directly the timer irq when
> called on x86 to program a null delay. Attached a patch which does the
> same for all other architectures.
> 

Applied, thanks.

> plain text document attachment (xeno-trigger-irq-on-null-delay.patch)
> Index: include/asm-arm/hal.h
> ===================================================================
> --- include/asm-arm/hal.h     (revision 1456)
> +++ include/asm-arm/hal.h     (working copy)
> @@ -104,8 +104,9 @@
>  static inline void rthal_timer_program_shot (unsigned long delay)
>  {
>      if(!delay)
> -        delay = 10;
> -    __ipipe_mach_set_dec(delay);
> +     rthal_trigger_irq(RTHAL_TIMER_IRQ);
> +    else
> +     __ipipe_mach_set_dec(delay);
>  }
>  
>      /* Private interface -- Internal use only */
> Index: include/asm-blackfin/hal.h
> ===================================================================
> --- include/asm-blackfin/hal.h        (revision 1456)
> +++ include/asm-blackfin/hal.h        (working copy)
> @@ -61,11 +61,14 @@
>  
>  static inline void rthal_timer_program_shot (unsigned long delay)
>  {
> -    if (delay < 2) delay = 10;
> -    *pTCOUNT = delay - 1;
> -    __builtin_bfin_csync();
> -    *pTCNTL = 3; /* Oneshot mode, no auto-reload. */
> -    __builtin_bfin_csync();
> +    if (delay < 2)
> +     rthal_trigger_irq(RTHAL_TIMER_IRQ);
> +    else {
> +     *pTCOUNT = delay - 1;
> +     __builtin_bfin_csync();
> +     *pTCNTL = 3; /* Oneshot mode, no auto-reload. */
> +     __builtin_bfin_csync();
> +    }
>  }
>  
>      /* Private interface -- Internal use only */
> Index: include/asm-ia64/hal.h
> ===================================================================
> --- include/asm-ia64/hal.h    (revision 1456)
> +++ include/asm-ia64/hal.h    (working copy)
> @@ -72,8 +72,10 @@
>  
>      rthal_local_irq_save_hw(flags);
>  #endif /* CONFIG_XENO_OPT_PIPELINE_HEAD */
> -    if (!delay) { delay = 10; }
> -    ia64_set_itm(ia64_get_itc() + delay);
> +    if (!delay)
> +     rthal_trigger_irq(RTHAL_TIMER_IRQ);
> +    else
> +     ia64_set_itm(ia64_get_itc() + delay);
>  #ifndef CONFIG_XENO_OPT_PIPELINE_HEAD
>      rthal_local_irq_restore_hw(flags);
>  #endif /* CONFIG_XENO_OPT_PIPELINE_HEAD */
> Index: include/asm-powerpc/hal.h
> ===================================================================
> --- include/asm-powerpc/hal.h (revision 1456)
> +++ include/asm-powerpc/hal.h (working copy)
> @@ -73,11 +73,12 @@
>  static inline void rthal_timer_program_shot(unsigned long delay)
>  {
>       if (!delay)
> -             delay = 1;
> +             rthal_trigger_irq(RTHAL_TIMER_IRQ);
> +     else
>  #ifdef CONFIG_40x
> -     mtspr(SPRN_PIT, delay);
> +             mtspr(SPRN_PIT, delay);
>  #else /* !CONFIG_40x */
> -     set_dec((int)delay);    /* decrementer is only 32-bits */
> +             set_dec((int)delay);    /* decrementer is only 32-bits */
>  #endif /* CONFIG_40x */
>  }
>  
> _______________________________________________
> Xenomai-core mailing list
> Xenomai-core@gna.org
> https://mail.gna.org/listinfo/xenomai-core
-- 
Philippe.



_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to