treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / Documentation / x86 / usb-legacy-support.rst
blobe01c08b7c981c0620598522dff7993473dc756c5
2 .. SPDX-License-Identifier: GPL-2.0
4 ==================
5 USB Legacy support
6 ==================
8 :Author: Vojtech Pavlik <vojtech@suse.cz>, January 2004
11 Also known as "USB Keyboard" or "USB Mouse support" in the BIOS Setup is a
12 feature that allows one to use the USB mouse and keyboard as if they were
13 their classic PS/2 counterparts.  This means one can use an USB keyboard to
14 type in LILO for example.
16 It has several drawbacks, though:
18 1) On some machines, the emulated PS/2 mouse takes over even when no USB
19    mouse is present and a real PS/2 mouse is present.  In that case the extra
20    features (wheel, extra buttons, touchpad mode) of the real PS/2 mouse may
21    not be available.
23 2) If CONFIG_HIGHMEM64G is enabled, the PS/2 mouse emulation can cause
24    system crashes, because the SMM BIOS is not expecting to be in PAE mode.
25    The Intel E7505 is a typical machine where this happens.
27 3) If AMD64 64-bit mode is enabled, again system crashes often happen,
28    because the SMM BIOS isn't expecting the CPU to be in 64-bit mode.  The
29    BIOS manufacturers only test with Windows, and Windows doesn't do 64-bit
30    yet.
32 Solutions:
34 Problem 1)
35   can be solved by loading the USB drivers prior to loading the
36   PS/2 mouse driver. Since the PS/2 mouse driver is in 2.6 compiled into
37   the kernel unconditionally, this means the USB drivers need to be
38   compiled-in, too.
40 Problem 2)
41   can currently only be solved by either disabling HIGHMEM64G
42   in the kernel config or USB Legacy support in the BIOS. A BIOS update
43   could help, but so far no such update exists.
45 Problem 3)
46   is usually fixed by a BIOS update. Check the board
47   manufacturers web site. If an update is not available, disable USB
48   Legacy support in the BIOS. If this alone doesn't help, try also adding
49   idle=poll on the kernel command line. The BIOS may be entering the SMM
50   on the HLT instruction as well.