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_ppc/time.c b/lib_ppc/time.c
index 173ffab..2909961 100644
--- a/lib_ppc/time.c
+++ b/lib_ppc/time.c
@@ -23,10 +23,6 @@
 
 #include <common.h>
 
-#ifndef CONFIG_WD_PERIOD
-# define CONFIG_WD_PERIOD	(10 * 1000 * 1000)	/* 10 seconds default*/
-#endif
-
 /* ------------------------------------------------------------------------- */
 
 /*
@@ -54,16 +50,10 @@
  * microseconds to wait) into a number of time base ticks; then we
  * watch the time base until it has incremented by that amount.
  */
-void udelay(unsigned long usec)
+void __udelay(unsigned long usec)
 {
-	ulong ticks, kv;
-
-	do {
-		kv = usec > CONFIG_WD_PERIOD ? CONFIG_WD_PERIOD : usec;
-		ticks = usec2ticks (kv);
-		wait_ticks (ticks);
-		usec -= kv;
-	} while(usec);
+	ulong ticks = usec2ticks (usec);
+	wait_ticks (ticks);
 }
 
 /* ------------------------------------------------------------------------- */