| #include <linux/module.h> | |
| #include <linux/kernel.h> | |
| #include <linux/delay.h> | |
| #include <asm/param.h> | |
| void __delay(unsigned long time) | |
| { | |
| /* Stolen from the i386 __loop_delay */ | |
| int d0; | |
| __asm__ __volatile__( | |
| "\tjmp 1f\n" | |
| ".align 16\n" | |
| "1:\tjmp 2f\n" | |
| ".align 16\n" | |
| "2:\tdecl %0\n\tjns 2b" | |
| :"=&a" (d0) | |
| :"0" (time)); | |
| } | |
| void __udelay(unsigned long usecs) | |
| { | |
| int i, n; | |
| n = (loops_per_jiffy * HZ * usecs) / MILLION; | |
| for(i=0;i<n;i++) | |
| cpu_relax(); | |
| } | |
| EXPORT_SYMBOL(__udelay); |