summaryrefslogtreecommitdiff
path: root/cpu/ixp
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 /cpu/ixp
parent1c409bc7101a24ecd47a13a4e851845d66dc23ce (diff)
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 'cpu/ixp')
-rw-r--r--cpu/ixp/start.S4
-rw-r--r--cpu/ixp/timer.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/cpu/ixp/start.S b/cpu/ixp/start.S
index 196ba5db2..5ebce5338 100644
--- a/cpu/ixp/start.S
+++ b/cpu/ixp/start.S
@@ -505,8 +505,8 @@ reset_endless:
/*
* 0 <= r0 <= 2000
*/
-.globl udelay
-udelay:
+.globl __udelay
+__udelay:
mov r2, #0x6800
orr r2, r2, #0x00db
mul r0, r2, r0
diff --git a/cpu/ixp/timer.c b/cpu/ixp/timer.c
index 685614966..edf341ff9 100644
--- a/cpu/ixp/timer.c
+++ b/cpu/ixp/timer.c
@@ -99,7 +99,7 @@ void ixp425_udelay(unsigned long usec)
while (!(*IXP425_OSST & IXP425_OSST_TIMER_1_PEND));
}
-void udelay (unsigned long usec)
+void __udelay (unsigned long usec)
{
while (usec--) ixp425_udelay(1);
}