1
linux/include/asm-x86
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
..
mach-bigsmp
mach-default x86: fix reboot with no keyboard attached 2007-11-17 16:27:01 +01:00
mach-es7000 x86: fix bogus memcpy in es7000_check_dsdt() 2007-11-17 16:27:00 +01:00
mach-generic
mach-numaq
mach-summit
mach-visws x86: visws extern inline to static inline 2007-10-17 20:16:39 +02:00
mach-voyager x86: voyager use correct header file name 2007-11-17 16:27:00 +01:00
xen
a.out.h x86: unify a.out{,_32,_64}.h 2007-10-23 22:37:23 +02:00
acpi_32.h x86: Unify i386 and x86-64 early quirks 2007-10-19 20:35:03 +02:00
acpi_64.h
acpi.h
agp.h x86: unify include/asm/agp_32/64.h 2007-10-17 20:17:12 +02:00
alternative_32.h
alternative_64.h
alternative-asm.h x86: rename .i assembler includes to .h 2007-10-17 20:16:29 +02:00
alternative.h
apic_32.h
apic_64.h x86: add lapic_shutdown for x86_64 2007-10-23 22:37:22 +02:00
apic.h
apicdef_32.h
apicdef_64.h
apicdef.h
arch_hooks.h
atomic_32.h
atomic_64.h x86: make atomic64_t work like atomic_t 2007-10-17 20:16:21 +02:00
atomic.h
auxvec.h x86: unify include/asm/auxvec_32/64.h 2007-10-17 20:17:13 +02:00
bitops_32.h bitops kernel-doc: inline instead of macro 2007-10-25 16:16:26 -07:00
bitops_64.h x86 bitops: fix code style issues 2007-10-25 16:16:26 -07:00
bitops.h
boot.h
bootparam.h Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
bug.h x86: unify include/asm/bug_32/64.h 2007-10-17 20:26:16 +02:00
bugs.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
byteorder.h x86: merge byteorder_32/64.h 2007-10-23 22:37:23 +02:00
cache.h x86: unify include/asm/cache_32/64.h 2007-10-17 20:17:15 +02:00
cacheflush.h Intel IOMMU: clflush_cache_range now takes size param 2007-10-22 08:13:18 -07:00
calgary.h
calling.h
checksum_32.h
checksum_64.h
checksum.h
cmpxchg_32.h
cmpxchg_64.h
cmpxchg.h
compat.h x86: Use linux/elfcore-compat.h 2007-10-19 20:35:02 +02:00
cpu.h i386: no need to make enable_cpu_hotplug a variable 2007-10-17 20:16:16 +02:00
cpufeature_32.h I/OAT: Add DCA services 2007-10-16 09:43:09 -07:00
cpufeature_64.h minimal build fixes for uml (fallout from x86 merge) 2007-10-13 09:57:15 -07:00
cpufeature.h
cputime.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
current_32.h
current_64.h
current.h
debugreg.h x86: unify include/asm/debugreg_32/64.h 2007-10-17 20:35:37 +02:00
delay.h x86: unify include/asm/delay_32/64.h 2007-10-17 20:17:17 +02:00
desc_32.h
desc_64.h x86: use descriptor's functions instead of inline assembly 2007-10-19 20:35:03 +02:00
desc_defs.h
desc.h
device.h intel-iommu: fix for IOMMU early crash 2007-10-22 08:13:19 -07:00
div64.h x86: unify div64{,_32,_64}.h 2007-10-23 22:37:23 +02:00
dma_32.h
dma_64.h
dma-mapping_32.h Change table chaining layout 2007-10-22 21:20:01 +02:00
dma-mapping_64.h x86-64: enable sg chaining 2007-10-16 11:26:02 +02:00
dma-mapping.h
dma.h
dmi.h x86: unify include/asm/dmi_32/64.h 2007-10-17 20:17:18 +02:00
dwarf2_32.h
dwarf2_64.h
dwarf2.h
e820_32.h Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
e820_64.h Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
e820.h Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
edac.h x86: unify include/asm/cache_32/64.h 2007-10-17 20:17:19 +02:00
elf.h x86: merge elf_32/64.h 2007-10-23 22:37:23 +02:00
emergency-restart.h
errno.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
fb.h x86: unify include/asm/cache_32/64.h 2007-10-17 20:17:21 +02:00
fcntl.h
fixmap_32.h
fixmap_64.h
fixmap.h
floppy.h x86: unify include/asm/floppy_32/64.h 2007-10-17 20:24:56 +02:00
fpu32.h
frame.h x86: rename .i assembler includes to .h 2007-10-17 20:16:29 +02:00
futex_32.h
futex_64.h
futex.h
gart.h x86 gart: rename symbols only used for the GART implementation 2007-10-30 00:22:22 +01:00
genapic_32.h
genapic_64.h
genapic.h
geode.h GEODE: use symbolic constant in cs5536 reboot fixup 2007-10-19 20:35:02 +02:00
hardirq_32.h x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
hardirq_64.h
hardirq.h
highmem.h
hpet.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2007-10-19 20:36:17 -07:00
hw_irq_32.h
hw_irq_64.h x86: Add parenthesis to IRQ vector macros 2007-10-17 20:16:28 +02:00
hw_irq.h
hypertransport.h
i387_32.h
i387_64.h x86: fix taking DNA during 64bit sigreturn 2007-11-12 11:09:33 -08:00
i387.h
i8253.h i386: Remove the useless #ifdef in i8253.h 2007-10-12 23:04:23 +02:00
i8259.h
ia32_unistd.h
ia32.h
ide.h ide: add CONFIG_IDE_ARCH_OBSOLETE_INIT 2007-10-20 00:32:32 +02:00
idle.h
intel_arch_perfmon.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
io_32.h x86: asm-i386/io.h fix constness 2007-10-17 20:16:40 +02:00
io_64.h Remove dma_cache_(wback|inv|wback_inv) functions 2007-10-17 08:42:57 -07:00
io_apic_32.h i386: Expose IOAPIC register definitions even if CONFIG_X86_IO_APIC is not set 2007-10-13 10:18:17 +02:00
io_apic_64.h x86: Unify i386 and x86-64 early quirks 2007-10-19 20:35:03 +02:00
io_apic.h
io.h
ioctl.h
ioctls.h x86: unify include/asm/ioctls_32/64.h 2007-10-17 20:26:11 +02:00
iommu.h x86 gart: rename iommu.h to gart.h 2007-10-30 00:22:22 +01:00
ipcbuf.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
ipi.h x86: convert cpu_to_apicid to be a per cpu variable 2007-10-19 20:35:03 +02:00
irq_32.h i386: introduce "used_vectors" bitmap which can be used to reserve vectors. 2007-10-19 20:35:03 +02:00
irq_64.h
irq_regs_32.h
irq_regs_64.h
irq_regs.h
irq.h
irqflags_32.h lockdep: fixup irq tracing 2007-10-25 14:01:10 +02:00
irqflags_64.h lockdep: fixup irq tracing 2007-10-25 14:01:10 +02:00
irqflags.h
ist.h Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
k8.h
Kbuild x86: merge setup_32/64.h 2007-10-23 22:37:24 +02:00
kdebug.h x86: unify include/asm/kdebug_32/64.h 2007-10-17 20:26:12 +02:00
kexec_32.h
kexec_64.h
kexec.h
kmap_types.h x86: unify include/asm/agp_32/64.h 2007-10-17 20:26:13 +02:00
kprobes_32.h kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
kprobes_64.h kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
kprobes.h
ldt.h x86: unify include/asm/ldt_32/64.h 2007-10-17 20:16:47 +02:00
lguest_hcall.h lguest: make async_hcall() static 2007-11-05 21:53:29 +11:00
lguest.h Reorder guest saved regs to match hyperall order 2007-10-23 15:49:51 +10:00
linkage_32.h
linkage_64.h
linkage.h
local_32.h
local_64.h
local.h
mach_apic.h
math_emu.h
mc146818rtc_32.h
mc146818rtc_64.h
mc146818rtc.h
mca_dma.h
mca.h
mce.h x86: unify include/asm/mce_32/64.h 2007-10-17 20:16:44 +02:00
mman.h x86: unify include/asm/mman_32/64.h 2007-10-17 20:26:15 +02:00
mmsegment.h
mmu_context_32.h
mmu_context_64.h
mmu_context.h
mmu.h x86: merge mmu{,_32,_64}.h 2007-10-23 22:37:22 +02:00
mmx.h
mmzone_32.h
mmzone_64.h
mmzone.h
module_32.h
module_64.h
module.h
mpspec_32.h
mpspec_64.h
mpspec_def.h
mpspec.h
msgbuf.h x86: merge msgbuf_32/64.h 2007-10-23 22:37:24 +02:00
msidef.h
msr-index.h i386: i386 add AMD64 Barcelona PMU MSR definitions to msr.h 2007-10-19 20:35:03 +02:00
msr.h x86: merge msr_32/64.h 2007-10-23 22:37:24 +02:00
mtrr.h x86: merge mttr_32/64.h 2007-10-23 22:37:24 +02:00
mutex_32.h
mutex_64.h
mutex.h
namei.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
nmi_32.h
nmi_64.h
nmi.h
numa_32.h
numa_64.h x86: clean up apicid_to_node declaration 2007-10-17 20:15:16 +02:00
numa.h
numaq.h
page_32.h
page_64.h x86_64: SPARSEMEM_VMEMMAP 2M page size support 2007-10-16 09:42:51 -07:00
page.h
param.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
paravirt.h paravirt: clean up lazy mode handling 2007-10-16 11:51:29 -07:00
parport.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
pci_32.h PCI: merge almost all of pci_32.h and pci_64.h together 2007-10-12 15:03:20 -07:00
pci_64.h x86 gart: rename CONFIG_IOMMU to CONFIG_GART_IOMMU 2007-10-30 00:22:22 +01:00
pci-direct.h
pci.h PCI: merge almost all of pci_32.h and pci_64.h together 2007-10-12 15:03:20 -07:00
pda.h x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
percpu_32.h
percpu_64.h
percpu.h
pgalloc_32.h
pgalloc_64.h
pgalloc.h
pgtable_32.h remove asm/bitops.h includes 2007-10-19 11:53:41 -07:00
pgtable_64.h remove asm/bitops.h includes 2007-10-19 11:53:41 -07:00
pgtable-2level-defs.h
pgtable-2level.h
pgtable-3level-defs.h paravirt: refactor struct paravirt_ops into smaller pv_*_ops 2007-10-16 11:51:29 -07:00
pgtable-3level.h
pgtable.h
poll.h
posix_types_32.h
posix_types_64.h
posix_types.h
prctl.h
processor_32.h x86: convert cpuinfo_x86 array to a per_cpu array 2007-10-19 20:35:04 +02:00
processor_64.h x86: convert cpuinfo_x86 array to a per_cpu array 2007-10-19 20:35:04 +02:00
processor-cyrix.h
processor-flags.h KVM: Use standard CR8 flags, and fix TPR definition 2007-10-13 10:18:19 +02:00
processor.h
proto.h x86: Unify i386 and x86-64 early quirks 2007-10-19 20:35:03 +02:00
ptrace-abi.h x86: unify include/asm/ptrace-abi_32/64.h 2007-10-17 20:16:45 +02:00
ptrace.h oprofile: fix oops on x86 32-bit 2007-11-14 18:45:44 -08:00
reboot_fixups.h
reboot.h
required-features.h x86: merge required-features.h 2007-10-23 22:37:24 +02:00
resource.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
resume-trace_32.h
resume-trace_64.h
resume-trace.h
rio.h
rtc.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
rwlock.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
rwsem.h
scatterlist_32.h Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
scatterlist_64.h Add CONFIG_DEBUG_SG sg validation 2007-10-22 21:20:03 +02:00
scatterlist.h
seccomp_32.h
seccomp_64.h
seccomp.h
sections.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
segment_32.h
segment_64.h
segment.h
semaphore_32.h kill DECLARE_MUTEX_LOCKED 2007-10-17 08:42:47 -07:00
semaphore_64.h kill DECLARE_MUTEX_LOCKED 2007-10-17 08:42:47 -07:00
semaphore.h
sembuf.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
serial.h x86: merge some trivially mergeable headers 2007-10-17 20:17:09 +02:00
setup.h x86: clean up setup.h and the boot code 2007-10-23 22:37:25 +02:00
shmbuf.h x86: merge shmbuf_32/64.h 2007-10-23 22:37:24 +02:00
shmparam.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
sigcontext32.h
sigcontext.h x86: merge sigcontext_32/64.h 2007-10-23 22:37:24 +02:00
siginfo.h x86: unify include/asm/siginfo_32/64.h 2007-10-17 20:26:17 +02:00
signal.h x86: merge signal_32/64.h 2007-10-23 22:37:24 +02:00
smp_32.h Revert "i386: export i386 smp_call_function_mask() to modules" 2007-10-27 20:57:43 +02:00
smp_64.h x86: add safe_smp_processor_id for x86_64 2007-10-23 22:37:23 +02:00
smp.h
socket.h
sockios.h x86: merge some trivially mergeable headers 2007-10-17 20:17:09 +02:00
sparsemem_32.h
sparsemem_64.h
sparsemem.h
spinlock_32.h
spinlock_64.h
spinlock_types.h
spinlock.h
srat.h
stacktrace.h x86: constify stacktrace_ops 2007-10-17 20:16:11 +02:00
stat.h x86: merge stat_32/64.h 2007-10-23 22:37:24 +02:00
statfs.h x86: merge statfs_32/64.h 2007-10-23 22:37:24 +02:00
string_32.h i386: Remove strrchr assembler implementation 2007-10-17 20:16:23 +02:00
string_64.h
string.h
suspend_32.h
suspend_64.h x86: Save registers in saved_context during suspend and hibernation 2007-10-23 22:37:24 +02:00
suspend.h
swiotlb.h
sync_bitops.h
system_32.h i386: consolidate show_regs and show_registers for i386 2007-10-19 20:35:03 +02:00
system_64.h x86: remove STR() macros 2007-10-17 20:16:25 +02:00
system.h
tce.h
termbits.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
termios.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
therm_throt.h
thread_info_32.h
thread_info_64.h
thread_info.h
time.h
timer.h
timex.h x86: unify timex.h variants 2007-10-12 23:04:23 +02:00
tlb.h x86: unify include/asm/tlb_32/64.h 2007-10-17 20:26:18 +02:00
tlbflush_32.h remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
tlbflush_64.h remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
tlbflush.h
topology_32.h x86: convert cpuinfo_x86 array to a per_cpu array 2007-10-19 20:35:04 +02:00
topology_64.h Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-x86 2007-10-19 15:06:00 -07:00
topology.h
tsc.h x86: unify timex.h variants 2007-10-12 23:04:23 +02:00
types.h x86: unify include/asm/types_32/64.h 2007-10-17 20:32:07 +02:00
uaccess_32.h
uaccess_64.h
uaccess.h
ucontext.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
unaligned.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
unistd_32.h
unistd_64.h x86: cleanup 64bit unistd.h 2007-10-17 20:16:36 +02:00
unistd.h
unwind.h x86: unify include/asm/unwind_32/64.h 2007-10-17 20:32:38 +02:00
user32.h
user_32.h
user_64.h
user.h
vga.h
vgtod.h
vic.h
vm86.h
vmi_time.h
vmi.h
voyager.h
vsyscall32.h
vsyscall.h i386/x8664: cleanup the shared hpet code 2007-10-12 23:04:23 +02:00
xor_32.h
xor_64.h
xor.h