Commit | Line | Data |
---|---|---|
060e3522 JD |
1 | #include <linux/module.h> |
2 | #include <linux/kernel.h> | |
3 | #include <linux/delay.h> | |
4 | #include <asm/param.h> | |
5fd861b6 | 5 | |
1da177e4 LT |
6 | void __delay(unsigned long time) |
7 | { | |
8 | /* Stolen from the i386 __loop_delay */ | |
9 | int d0; | |
10 | __asm__ __volatile__( | |
11 | "\tjmp 1f\n" | |
12 | ".align 16\n" | |
13 | "1:\tjmp 2f\n" | |
14 | ".align 16\n" | |
15 | "2:\tdecl %0\n\tjns 2b" | |
16 | :"=&a" (d0) | |
17 | :"0" (time)); | |
18 | } | |
19 | ||
5fd861b6 BS |
20 | void __udelay(unsigned long usecs) |
21 | { | |
22 | int i, n; | |
23 | ||
24 | n = (loops_per_jiffy * HZ * usecs) / MILLION; | |
060e3522 JD |
25 | for(i=0;i<n;i++) |
26 | cpu_relax(); | |
5fd861b6 BS |
27 | } |
28 | ||
060e3522 JD |
29 | EXPORT_SYMBOL(__udelay); |
30 | ||
5fd861b6 BS |
31 | void __const_udelay(unsigned long usecs) |
32 | { | |
33 | int i, n; | |
34 | ||
35 | n = (loops_per_jiffy * HZ * usecs) / MILLION; | |
060e3522 JD |
36 | for(i=0;i<n;i++) |
37 | cpu_relax(); | |
5fd861b6 | 38 | } |
060e3522 JD |
39 | |
40 | EXPORT_SYMBOL(__const_udelay); |