85xx: Remove cache config from configs.h
[oweals/u-boot.git] / cpu / s3c44b0 / interrupts.c
index dea8118dd7d327e6dcf54f8125b722041f77f38d..5d2c13d97f88ec51aa9a37f079e2219705a27887 100644 (file)
@@ -219,15 +219,22 @@ ulong get_timer_masked (void)
 void udelay_masked (unsigned long usec)
 {
        ulong tmo;
+       ulong endtime;
+       signed long diff;
 
-       tmo = usec / 1000;
-       tmo *= CFG_HZ;
-       tmo /= 8;
-
-       tmo += get_timer (0);
+       if (usec >= 1000) {
+               tmo = usec / 1000;
+               tmo *= CFG_HZ;
+               tmo /= 8;
+       } else {
+               tmo = usec * CFG_HZ;
+               tmo /= (1000*8);
+       }
 
-       reset_timer_masked ();
+       endtime = get_timer(0) + tmo;
 
-       while (get_timer_masked () < tmo)
-               /*NOP*/;
+       do {
+               ulong now = get_timer_masked ();
+               diff = endtime - now;
+       } while (diff >= 0);
 }