linux/include
Truxton Fulton 05dfa35e84 x86: fix reboot with no keyboard attached
Attempt to fix http://bugzilla.kernel.org/show_bug.cgi?id=8378

Hiroto Shibuya wrote to tell me that he has a VIA EPIA-EK10000 which
suffers from the reboot problem when no keyboard is attached.  My first
patch works for him:

  http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=59f4e7d572980a521b7bdba74ab71b21f5995538

But the latest patch does not work for him :

  http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8b93789808756bcc1e5c90c99f1b1ef52f839a51

We found that it was necessary to also set the "disable keyboard" flag in
the command byte, as the first patch was doing.  The second patch tries to
minimally modify the command byte, but it is not enough.

Please consider this simple one-line patch to help people with low end VIA
motherboards reboot when no keyboard is attached.  Hiroto Shibuya has
verified that this works for him (as I no longer have an afflicted
machine).


Additional discussion:

Note that original patch from Truxton DOES
disable keyboard and this has been in main tree since 2.6.14, thus it must have
quite a bit of air time already.

http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.14.y.git;a=commit;h=59f4e7d572980a521b7bdba74ab71b21f5995538

Note that he only mention "System flag" in the description and comment, but
in the code, "disable keyboard" flag is set.

  outb(0x14, 0x60);       /* set "System flag" */

In 2.6.23, he made a change to read the current byte and then mask the flags,
but along this change,  he only set the "System flag" and dropped the setting
of "disable keyboard" flag.

http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.23.y.git;a=commit;h=8b93789808756bcc1e5c90c99f1b1ef52f839a51

   outb(cmd | 0x04, 0x60); /* set "System flag" */

So my request is to restore the setting of disable keyboard flag which has been
there since 2.6.14 but disappeared in 2.6.23.

Cc: Lee Garrett <lee-in-berlin@web.de>
Cc: "Hiroto Shibuya" <hiroto.shibuya@gmail.com>
Cc: Natalie Protasevich <protasnb@gmail.com>
Cc: Dmitry Torokhov <dtor@mail.ru>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Aristeu Rozanski <aris@ruivo.org>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2007-11-17 16:27:01 +01:00
..
acpi ACPI: Fan: Drop force_power_state acpi_device option 2007-10-25 16:31:31 -04:00
asm-alpha Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-arm [ARM] 4644/2: fix flush_kern_tlb_range() in module space 2007-11-08 10:07:14 +00:00
asm-avr32 [AVR32] Add missing bit in PCCR sysreg 2007-11-15 13:47:20 +01:00
asm-blackfin Blackfin arch: use a less common define name in BF549 2007-10-30 12:04:53 +08:00
asm-cris CRIS tlb.h should include linux/pagemap.h 2007-11-14 18:45:47 -08:00
asm-frv frv: Remove bogus NO_IRQ = -1 define 2007-11-09 15:11:44 -08:00
asm-generic Linux Kernel Markers 2007-10-19 11:53:54 -07:00
asm-h8300 Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-ia64 [IA64] Update printing of feature set bits 2007-11-09 13:05:30 -08:00
asm-m32r Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-m68k Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-m68knommu m68knommu: fix pread/pwrite defines 2007-11-05 15:12:33 -08:00
asm-mips [MIPS] Lasat: Fix overlap of interrupt number ranges. 2007-11-15 23:21:50 +00:00
asm-parisc parisc: fix sg_page() fallout 2007-10-23 09:49:31 +02:00
asm-powerpc [POWERPC] Avoid unpaired stwcx. on some processors 2007-11-13 16:22:43 +11:00
asm-ppc ppc: fix AT_VECTOR_SIZE on arch/ppc 2007-10-22 19:18:54 -07:00
asm-s390 Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2007-10-22 19:23:34 -07:00
asm-sh sh: remove dead config symbols from SH code 2007-11-09 04:45:29 +09:00
asm-sh64 sh: remove PTRACE_O_TRACESYSGOOD from asm/ptrace.h 2007-11-07 11:13:54 +09:00
asm-sparc [SPARC32]: __inline__ --> inline 2007-10-27 00:17:01 -07:00
asm-sparc64 [SPARC64]: Use "is_power_of_2" macro for simplicity. 2007-11-07 02:24:33 -08:00
asm-um uml: update address space affected by pud_clear 2007-11-14 18:45:37 -08:00
asm-v850 Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
asm-x86 x86: fix reboot with no keyboard attached 2007-11-17 16:27:01 +01:00
asm-xtensa xtensa: dma-mapping.h is using linux/scatterlist.h functions, so include it 2007-10-24 13:28:40 +02:00
crypto
keys KEYS: Make request_key() and co fundamentally asynchronous 2007-10-17 08:42:57 -07:00
linux SELinux: return EOPNOTSUPP not ENOTSUPP 2007-11-17 10:38:16 +11:00
math-emu
media [PATCH] Fix breakage after SG cleanups 2007-10-23 12:02:39 -07:00
mtd
net [INET]: Fix potential kfree on vmalloc-ed area of request_sock_queue 2007-11-15 02:57:06 -08:00
pcmcia [AVR32] pcmcia ioaddr_t should be 32 bits on AVR32 2007-11-15 13:47:19 +01:00
rdma cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
rxrpc
scsi SCSI: add asynchronous event notification API 2007-11-03 22:23:02 -04:00
sound [ALSA] version 1.0.15 2007-10-23 08:09:20 +02:00
video Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
xen
Kbuild do not export /usr/include/scsi in make headers_install 2007-10-17 08:42:52 -07:00