extern unsigned long loops_per_jiffy;
#include <asm/delay.h>
-#include <asm/hardirq.h>
+
/*
* Using udelay() for intervals greater than a few milliseconds can
* risk overflow for high loops_per_jiffy (high bogomips) machines. The
#define MAX_UDELAY_MS 5
#endif
-#define mdelay(n) ( \
- { \
- static int warned=0; \
- unsigned long __ms=(n); \
- WARN_ON(in_irq() && !(warned++)); \
- while (__ms--) udelay(1000); \
- })
+#ifdef notdef
+#define mdelay(n) (\
+ {unsigned long __ms=(n); while (__ms--) udelay(1000);})
+#else
+#define mdelay(n) (\
+ (__builtin_constant_p(n) && (n)<=MAX_UDELAY_MS) ? udelay((n)*1000) : \
+ ({unsigned long __ms=(n); while (__ms--) udelay(1000);}))
+#endif
#ifndef ndelay
#define ndelay(x) udelay(((x)+999)/1000)
#endif
+void calibrate_delay(void);
void msleep(unsigned int msecs);
+unsigned long msleep_interruptible(unsigned int msecs);
+
+static inline void ssleep(unsigned int seconds)
+{
+ msleep(seconds * 1000);
+}
#endif /* defined(_LINUX_DELAY_H) */