|
@@ -23,6 +23,9 @@
|
|
|
|
|
|
#include <common.h>
|
|
#include <common.h>
|
|
|
|
|
|
|
|
+#ifndef CONFIG_WD_PERIOD
|
|
|
|
+# define CONFIG_WD_PERIOD (10 * 1000 * 1000) /* 10 seconds default*/
|
|
|
|
+#endif
|
|
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
/* ------------------------------------------------------------------------- */
|
|
|
|
|
|
@@ -53,9 +56,14 @@ unsigned long usec2ticks(unsigned long usec)
|
|
*/
|
|
*/
|
|
void udelay(unsigned long usec)
|
|
void udelay(unsigned long usec)
|
|
{
|
|
{
|
|
- ulong ticks = usec2ticks (usec);
|
|
|
|
-
|
|
|
|
- wait_ticks (ticks);
|
|
|
|
|
|
+ ulong ticks, kv;
|
|
|
|
+
|
|
|
|
+ do {
|
|
|
|
+ kv = usec > CONFIG_WD_PERIOD ? CONFIG_WD_PERIOD : usec;
|
|
|
|
+ ticks = usec2ticks (kv);
|
|
|
|
+ wait_ticks (ticks);
|
|
|
|
+ usec -= kv;
|
|
|
|
+ } while(usec);
|
|
}
|
|
}
|
|
|
|
|
|
/* ------------------------------------------------------------------------- */
|
|
/* ------------------------------------------------------------------------- */
|