diff options
author | Ingo van Lil <inguin@gmx.de> | 2009-11-24 14:09:21 +0100 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2009-12-05 01:08:53 +0100 |
commit | 3eb90bad651fab39cffba750ec4421a9c01d60e7 (patch) | |
tree | 63b21148a041603db252203a422dc465e862e016 /include | |
parent | 1c409bc7101a24ecd47a13a4e851845d66dc23ce (diff) | |
download | u-boot-midas-3eb90bad651fab39cffba750ec4421a9c01d60e7.tar.gz u-boot-midas-3eb90bad651fab39cffba750ec4421a9c01d60e7.tar.bz2 u-boot-midas-3eb90bad651fab39cffba750ec4421a9c01d60e7.zip |
Generic udelay() with watchdog support
According to the PPC reference implementation the udelay() function is
responsible for resetting the watchdog timer as frequently as needed.
Most other architectures do not meet that requirement, so long-running
operations might result in a watchdog reset.
This patch adds a generic udelay() function which takes care of
resetting the watchdog before calling an architecture-specific
__udelay().
Signed-off-by: Ingo van Lil <inguin@gmx.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-blackfin/delay.h | 2 | ||||
-rw-r--r-- | include/common.h | 5 | ||||
-rw-r--r-- | include/exports.h | 2 |
3 files changed, 6 insertions, 3 deletions
diff --git a/include/asm-blackfin/delay.h b/include/asm-blackfin/delay.h index ea0b3664e0..3af6ad3e71 100644 --- a/include/asm-blackfin/delay.h +++ b/include/asm-blackfin/delay.h @@ -47,7 +47,7 @@ extern __inline__ void __delay(unsigned long loops) * first constant multiplications gets optimized away if the delay is * a constant) */ -extern __inline__ void udelay(unsigned long usecs) +extern __inline__ void __udelay(unsigned long usecs) { __delay(usecs); } diff --git a/include/common.h b/include/common.h index 30a4b7affb..749d35cabe 100644 --- a/include/common.h +++ b/include/common.h @@ -607,11 +607,14 @@ unsigned long long get_ticks(void); void wait_ticks (unsigned long); /* lib_$(ARCH)/time.c */ -void udelay (unsigned long); +void __udelay (unsigned long); ulong usec2ticks (unsigned long usec); ulong ticks2usec (unsigned long ticks); int init_timebase (void); +/* lib_generic/time.c */ +void udelay (unsigned long); + /* lib_generic/vsprintf.c */ ulong simple_strtoul(const char *cp,char **endp,unsigned int base); #ifdef CONFIG_SYS_64BIT_VSPRINTF diff --git a/include/exports.h b/include/exports.h index 2e8fd8b8b4..c3a5d2f32e 100644 --- a/include/exports.h +++ b/include/exports.h @@ -16,7 +16,7 @@ void install_hdlr(int, interrupt_handler_t*, void*); void free_hdlr(int); void *malloc(size_t); void free(void*); -void udelay(unsigned long); +void __udelay(unsigned long); unsigned long get_timer(unsigned long); void vprintf(const char *, va_list); void do_reset (void); |