diff options
Diffstat (limited to 'include/asm-i386/io.h')
| -rw-r--r-- | include/asm-i386/io.h | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/include/asm-i386/io.h b/include/asm-i386/io.h index 59fe616933c4..e797586a5bfc 100644 --- a/include/asm-i386/io.h +++ b/include/asm-i386/io.h | |||
| @@ -250,19 +250,22 @@ static inline void flush_write_buffers(void) | |||
| 250 | 250 | ||
| 251 | #endif /* __KERNEL__ */ | 251 | #endif /* __KERNEL__ */ |
| 252 | 252 | ||
| 253 | static inline void native_io_delay(void) | ||
| 254 | { | ||
| 255 | asm volatile("outb %%al,$0x80" : : : "memory"); | ||
| 256 | } | ||
| 257 | |||
| 253 | #if defined(CONFIG_PARAVIRT) | 258 | #if defined(CONFIG_PARAVIRT) |
| 254 | #include <asm/paravirt.h> | 259 | #include <asm/paravirt.h> |
| 255 | #else | 260 | #else |
| 256 | 261 | ||
| 257 | #define __SLOW_DOWN_IO "outb %%al,$0x80;" | ||
| 258 | |||
| 259 | static inline void slow_down_io(void) { | 262 | static inline void slow_down_io(void) { |
| 260 | __asm__ __volatile__( | 263 | native_io_delay(); |
| 261 | __SLOW_DOWN_IO | ||
| 262 | #ifdef REALLY_SLOW_IO | 264 | #ifdef REALLY_SLOW_IO |
| 263 | __SLOW_DOWN_IO __SLOW_DOWN_IO __SLOW_DOWN_IO | 265 | native_io_delay(); |
| 266 | native_io_delay(); | ||
| 267 | native_io_delay(); | ||
| 264 | #endif | 268 | #endif |
| 265 | : : ); | ||
| 266 | } | 269 | } |
| 267 | 270 | ||
| 268 | #endif | 271 | #endif |
