diff options
Diffstat (limited to 'include/asm-i386/delay.h')
-rw-r--r-- | include/asm-i386/delay.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/include/asm-i386/delay.h b/include/asm-i386/delay.h index b1c7650dc7b9..32d6678d0bbf 100644 --- a/include/asm-i386/delay.h +++ b/include/asm-i386/delay.h | |||
@@ -7,6 +7,7 @@ | |||
7 | * Delay routines calling functions in arch/i386/lib/delay.c | 7 | * Delay routines calling functions in arch/i386/lib/delay.c |
8 | */ | 8 | */ |
9 | 9 | ||
10 | /* Undefined functions to get compile-time errors */ | ||
10 | extern void __bad_udelay(void); | 11 | extern void __bad_udelay(void); |
11 | extern void __bad_ndelay(void); | 12 | extern void __bad_ndelay(void); |
12 | 13 | ||
@@ -15,13 +16,23 @@ extern void __ndelay(unsigned long nsecs); | |||
15 | extern void __const_udelay(unsigned long usecs); | 16 | extern void __const_udelay(unsigned long usecs); |
16 | extern void __delay(unsigned long loops); | 17 | extern void __delay(unsigned long loops); |
17 | 18 | ||
19 | #if defined(CONFIG_PARAVIRT) && !defined(USE_REAL_TIME_DELAY) | ||
20 | #define udelay(n) paravirt_ops.const_udelay((n) * 0x10c7ul) | ||
21 | |||
22 | #define ndelay(n) paravirt_ops.const_udelay((n) * 5ul) | ||
23 | |||
24 | #else /* !PARAVIRT || USE_REAL_TIME_DELAY */ | ||
25 | |||
26 | /* 0x10c7 is 2**32 / 1000000 (rounded up) */ | ||
18 | #define udelay(n) (__builtin_constant_p(n) ? \ | 27 | #define udelay(n) (__builtin_constant_p(n) ? \ |
19 | ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c7ul)) : \ | 28 | ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c7ul)) : \ |
20 | __udelay(n)) | 29 | __udelay(n)) |
21 | 30 | ||
31 | /* 0x5 is 2**32 / 1000000000 (rounded up) */ | ||
22 | #define ndelay(n) (__builtin_constant_p(n) ? \ | 32 | #define ndelay(n) (__builtin_constant_p(n) ? \ |
23 | ((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) : \ | 33 | ((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) : \ |
24 | __ndelay(n)) | 34 | __ndelay(n)) |
35 | #endif | ||
25 | 36 | ||
26 | void use_tsc_delay(void); | 37 | void use_tsc_delay(void); |
27 | 38 | ||