summaryrefslogtreecommitdiff
path: root/lib_ppc
diff options
context:
space:
mode:
authorMarian Balakowicz <m8@semihalf.com>2008-02-29 13:56:44 +0100
committerMarian Balakowicz <m8@semihalf.com>2008-02-29 13:56:44 +0100
commite18489e8c27e843e337258fb00f2652ff0f43b92 (patch)
tree2a3b2afa224e61cb7f1206a1641007e526d25160 /lib_ppc
parent75fa002c47171b73fb4c1f2c2fe4d6391c136276 (diff)
parentb29661fc1151077776454288051bc9a488351ce8 (diff)
Merge branch 'master' of git://www.denx.de/git/u-boot into new-image
Diffstat (limited to 'lib_ppc')
-rw-r--r--lib_ppc/time.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/lib_ppc/time.c b/lib_ppc/time.c
index 51e8e8406dc..2649d5ffdca 100644
--- a/lib_ppc/time.c
+++ b/lib_ppc/time.c
@@ -23,6 +23,9 @@
#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)
{
- 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);
}
/* ------------------------------------------------------------------------- */