0001
0002 #ifndef __ASM_GENERIC_DELAY_H
0003 #define __ASM_GENERIC_DELAY_H
0004
0005
0006 extern void __bad_udelay(void);
0007 extern void __bad_ndelay(void);
0008
0009 extern void __udelay(unsigned long usecs);
0010 extern void __ndelay(unsigned long nsecs);
0011 extern void __const_udelay(unsigned long xloops);
0012 extern void __delay(unsigned long loops);
0013
0014
0015
0016
0017
0018
0019
0020 #define udelay(n) \
0021 ({ \
0022 if (__builtin_constant_p(n)) { \
0023 if ((n) / 20000 >= 1) \
0024 __bad_udelay(); \
0025 else \
0026 __const_udelay((n) * 0x10c7ul); \
0027 } else { \
0028 __udelay(n); \
0029 } \
0030 })
0031
0032
0033 #define ndelay(n) \
0034 ({ \
0035 if (__builtin_constant_p(n)) { \
0036 if ((n) / 20000 >= 1) \
0037 __bad_ndelay(); \
0038 else \
0039 __const_udelay((n) * 5ul); \
0040 } else { \
0041 __ndelay(n); \
0042 } \
0043 })
0044
0045 #endif