1/* 2 * arch/i386/mach-generic/mach_reboot.h 3 * 4 * Machine specific reboot functions for generic. 5 * Split out from reboot.c by Osamu Tomita <tomita@cinet.co.jp> 6 */ 7#ifndef _MACH_REBOOT_H 8#define _MACH_REBOOT_H 9 10static inline void kb_wait(void) 11{ 12 int i; 13 14 for (i = 0; i < 0x10000; i++) 15 if ((inb_p(0x64) & 0x02) == 0) 16 break; 17} 18 19static inline void mach_reboot(void) 20{ 21 int i; 22 for (i = 0; i < 10; i++) { 23 kb_wait(); 24 udelay(50); 25 outb(0x60, 0x64); /* write Controller Command Byte */ 26 udelay(50); 27 kb_wait(); 28 udelay(50); 29 outb(0x14, 0x60); /* set "System flag" */ 30 udelay(50); 31 kb_wait(); 32 udelay(50); 33 outb(0xfe, 0x64); /* pulse reset low */ 34 udelay(50); 35 } 36} 37 38#endif /* !_MACH_REBOOT_H */ 39