diff options
Diffstat (limited to 'include/asm-arm/delay.h')
| -rw-r--r-- | include/asm-arm/delay.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/include/asm-arm/delay.h b/include/asm-arm/delay.h index 1704360e9699..b2deda181549 100644 --- a/include/asm-arm/delay.h +++ b/include/asm-arm/delay.h | |||
| @@ -6,6 +6,8 @@ | |||
| 6 | #ifndef __ASM_ARM_DELAY_H | 6 | #ifndef __ASM_ARM_DELAY_H |
| 7 | #define __ASM_ARM_DELAY_H | 7 | #define __ASM_ARM_DELAY_H |
| 8 | 8 | ||
| 9 | #include <asm/param.h> /* HZ */ | ||
| 10 | |||
| 9 | extern void __delay(int loops); | 11 | extern void __delay(int loops); |
| 10 | 12 | ||
| 11 | /* | 13 | /* |
| @@ -13,7 +15,7 @@ extern void __delay(int loops); | |||
| 13 | * it, it means that you're calling udelay() with an out of range value. | 15 | * it, it means that you're calling udelay() with an out of range value. |
| 14 | * | 16 | * |
| 15 | * With currently imposed limits, this means that we support a max delay | 17 | * With currently imposed limits, this means that we support a max delay |
| 16 | * of 2000us and 671 bogomips | 18 | * of 2000us. Further limits: HZ<=1000 and bogomips<=3355 |
| 17 | */ | 19 | */ |
| 18 | extern void __bad_udelay(void); | 20 | extern void __bad_udelay(void); |
| 19 | 21 | ||
| @@ -32,10 +34,10 @@ extern void __const_udelay(unsigned long); | |||
| 32 | 34 | ||
| 33 | #define MAX_UDELAY_MS 2 | 35 | #define MAX_UDELAY_MS 2 |
| 34 | 36 | ||
| 35 | #define udelay(n) \ | 37 | #define udelay(n) \ |
| 36 | (__builtin_constant_p(n) ? \ | 38 | (__builtin_constant_p(n) ? \ |
| 37 | ((n) > (MAX_UDELAY_MS * 1000) ? __bad_udelay() : \ | 39 | ((n) > (MAX_UDELAY_MS * 1000) ? __bad_udelay() : \ |
| 38 | __const_udelay((n) * 0x68dbul)) : \ | 40 | __const_udelay((n) * ((2199023U*HZ)>>11))) : \ |
| 39 | __udelay(n)) | 41 | __udelay(n)) |
| 40 | 42 | ||
| 41 | #endif /* defined(_ARM_DELAY_H) */ | 43 | #endif /* defined(_ARM_DELAY_H) */ |
