aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorIngo van Lil <inguin@gmx.de>2009-11-24 14:09:21 +0100
committerWolfgang Denk <wd@denx.de>2009-12-05 01:08:53 +0100
commit3eb90bad651fab39cffba750ec4421a9c01d60e7 (patch)
tree63b21148a041603db252203a422dc465e862e016 /include
parent1c409bc7101a24ecd47a13a4e851845d66dc23ce (diff)
downloadu-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.h2
-rw-r--r--include/common.h5
-rw-r--r--include/exports.h2
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);