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>
diff --git a/lib_nios/time.c b/lib_nios/time.c
index 25a233e..d5096ee 100644
--- a/lib_nios/time.c
+++ b/lib_nios/time.c
@@ -27,13 +27,12 @@
extern void dly_clks( unsigned long ticks );
-void udelay(unsigned long usec)
+void __udelay(unsigned long usec)
{
/* The Nios core doesn't have a timebase, so we do our
* best for now and call a low-level loop that counts
* cpu clocks.
*/
unsigned long cnt = (CONFIG_SYS_CLK_FREQ/1000000) * usec;
- WATCHDOG_RESET (); /* trigger watchdog if needed */
dly_clks (cnt);
}