| /* |
| * arch/i386/mach-generic/mach_reboot.h |
| * |
| * Machine specific reboot functions for generic. |
| * Split out from reboot.c by Osamu Tomita <tomita@cinet.co.jp> |
| */ |
| #ifndef _MACH_REBOOT_H |
| #define _MACH_REBOOT_H |
| |
| static inline void kb_wait(void) |
| { |
| int i; |
| |
| for (i = 0; i < 0x10000; i++) |
| if ((inb_p(0x64) & 0x02) == 0) |
| break; |
| } |
| |
| static inline void mach_reboot(void) |
| { |
| int i; |
| for (i = 0; i < 100; i++) { |
| kb_wait(); |
| udelay(50); |
| outb(0x60, 0x64); /* write Controller Command Byte */ |
| udelay(50); |
| kb_wait(); |
| udelay(50); |
| outb(0x14, 0x60); /* set "System flag" */ |
| udelay(50); |
| kb_wait(); |
| udelay(50); |
| outb(0xfe, 0x64); /* pulse reset low */ |
| udelay(50); |
| } |
| } |
| |
| #endif /* !_MACH_REBOOT_H */ |