|
@@ -1,61 +0,0 @@
|
|
|
-/*
|
|
|
- * 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;
|
|
|
-
|
|
|
- /* old method, works on most machines */
|
|
|
- for (i = 0; i < 10; i++) {
|
|
|
- kb_wait();
|
|
|
- udelay(50);
|
|
|
- outb(0xfe, 0x64); /* pulse reset low */
|
|
|
- udelay(50);
|
|
|
- }
|
|
|
-
|
|
|
- /* New method: sets the "System flag" which, when set, indicates
|
|
|
- * successful completion of the keyboard controller self-test (Basic
|
|
|
- * Assurance Test, BAT). This is needed for some machines with no
|
|
|
- * keyboard plugged in. This read-modify-write sequence sets only the
|
|
|
- * system flag
|
|
|
- */
|
|
|
- for (i = 0; i < 10; i++) {
|
|
|
- int cmd;
|
|
|
-
|
|
|
- outb(0x20, 0x64); /* read Controller Command Byte */
|
|
|
- udelay(50);
|
|
|
- kb_wait();
|
|
|
- udelay(50);
|
|
|
- cmd = inb(0x60);
|
|
|
- udelay(50);
|
|
|
- kb_wait();
|
|
|
- udelay(50);
|
|
|
- outb(0x60, 0x64); /* write Controller Command Byte */
|
|
|
- udelay(50);
|
|
|
- kb_wait();
|
|
|
- udelay(50);
|
|
|
- outb(cmd | 0x14, 0x60); /* set "System flag" and "Keyboard Disabled" */
|
|
|
- udelay(50);
|
|
|
- kb_wait();
|
|
|
- udelay(50);
|
|
|
- outb(0xfe, 0x64); /* pulse reset low */
|
|
|
- udelay(50);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-#endif /* !_MACH_REBOOT_H */
|