Input: i8042 - disable active multiplexing by default
Subsystems (3)
Dmitry Torokhov
maintainerPATCH 1/1 Input: i8042 - disable active multiplexing by default
Active multiplexing is a nice feature as it allows several pointing devices (such as touchpad and external mouse) use their native protocols at the same time. Unfortunately many manufacturers do not implement the feature properly even though they advertise it. The problematic implementations are never fixed, since Windows by default does not use this mode, and move from one BIOS/model of laptop to another. When active multiplexing is broken turning it on usually results in touchpad, keyboard, or both unresponsive.
With PS/2 usage on decline (most of PS/2 devices in use nowadays are internal laptop touchpads), I expect number of users who have laptops with working MUX implementation, docking stations with external PS/2 ports, and who are still using external PS/2 mice, to be rather small. Let's flip the default to be OFF and allow activating it through i8042.nomux=0 kernel option. We'll also keep DMI table where we can record known good models.
--- Documentation/kernel-parameters.txt | 2 +- drivers/input/serio/i8042-x86ia64io.h | 281 +--------------------------------- drivers/input/serio/i8042.c | 2 +- 3 files changed, 10 insertions(+), 275 deletions(-)
Documentation/kernel-parameters.txt +1 -1
@@ -1237,7 +1237,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted. i8042.noloop [HW] Disable the AUX Loopback command while probing for the AUX port i8042.nomux [HW] Don't check presence of an active multiplexing - controller + controller. Default: true. i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX controllers i8042.notimeout [HW] Ignore timeout condition signalled by controller
drivers/input/serio/i8042-x86ia64io.h +8 -273
298 lines not on this page · raw message
drivers/input/serio/i8042.c +1 -1
@@ -39,7 +39,7 @@ static bool i8042_noaux;module_param_named (noaux, i8042_noaux, bool,0 );MODULE_PARM_DESC (noaux,"Do not probe or use AUX (mouse) port." ); -static bool i8042_nomux; +static bool i8042_nomux = true;module_param_named (nomux, i8042_nomux, bool,0 );MODULE_PARM_DESC (nomux,"Do not check whether an active multiplexing controller is present." );
Signature · 5 lines
2.1.0.rc2.206.gedb03e5 -- Dmitry
Quoted 8 lines · Dmitry Torokhov
Active multiplexing is a nice feature as it allows several pointing devices (such as touchpad and external mouse) use their native protocols at the same time. Unfortunately many manufacturers do not implement the feature properly even though they advertise it. The problematic implementations are never fixed, since Windows by default does not use this mode, and move from one BIOS/model of laptop to another. When active multiplexing is broken turning it on usually results in touchpad, keyboard, or both unresponsive.
Quoted 6 lines
With PS/2 usage on decline (most of PS/2 devices in use nowadays are internal laptop touchpads), I expect number of users who have laptops with working MUX implementation, docking stations with external PS/2 ports, and who are still using external PS/2 mice, to be rather small. Let's flip the default to be OFF and allow activating it through i8042.nomux=0 kernel option. We'll also keep DMI table where we can record known good models.
Being responsible for introducing a non-trivial portion of i8042_dmi_nomux_table[] entries:
If nothing else, it'd make my life easier :)
[ ... snip ... ]
drivers/input/serio/i8042.c static bool i8042_noaux; · line 42
Quoted 10 lines
drivers/input/serio/i8042.c +1
-1@@ -39,7 +39,7 @@ static bool i8042_noaux;module_param_named (noaux, i8042_noaux, bool,0 );MODULE_PARM_DESC (noaux,"Do not probe or use AUX (mouse) port." ); -static bool i8042_nomux; +static bool i8042_nomux = true;
Hmmm ... perhaps if we want to be really friendly, we should warn (and I definitely don't mean WARN(), but rather pr_info() or something) if we encounter that the cmdline contains 'i8042.nomux=1'.
Thanks,
Signature · 2 lines
Jiri Kosina SUSE Labs
Dmitry Torokhov
maintainerQuoted 33 lines · Jiri Kosina
Quoted 8 lines · Dmitry Torokhov
Active multiplexing is a nice feature as it allows several pointing devices (such as touchpad and external mouse) use their native protocols at the same time. Unfortunately many manufacturers do not implement the feature properly even though they advertise it. The problematic implementations are never fixed, since Windows by default does not use this mode, and move from one BIOS/model of laptop to another. When active multiplexing is broken turning it on usually results in touchpad, keyboard, or both unresponsive.
Quoted 6 lines
With PS/2 usage on decline (most of PS/2 devices in use nowadays are internal laptop touchpads), I expect number of users who have laptops with working MUX implementation, docking stations with external PS/2 ports, and who are still using external PS/2 mice, to be rather small. Let's flip the default to be OFF and allow activating it through i8042.nomux=0 kernel option. We'll also keep DMI table where we can record known good models.
Being responsible for introducing a non-trivial portion of i8042_dmi_nomux_table[] entries:
Acked-by Jiri Kosina <[email protected]>If nothing else, it'd make my life easier :)
[ ... snip ... ]
Quoted 8 lines
drivers/input/serio/i8042.c +0
-0@@ -39,7 +39,7 @@ static bool i8042_noaux;module_param_named (noaux, i8042_noaux, bool,0 );MODULE_PARM_DESC (noaux,"Do not probe or use AUX (mouse) port." );
Quoted 6 lines
drivers/input/serio/i8042.c static bool i8042_noaux; · line 42
Quoted 2 lines
drivers/input/serio/i8042.c +1
-1-static bool i8042_nomux; +static bool i8042_nomux = true;Hmmm ... perhaps if we want to be really friendly, we should warn (and I definitely don't mean
WARN(), but ratherpr_info()or something) if we encounter that the cmdline contains 'i8042.nomux=1'.
Warn about what? That they do not need this option anymore? They might if they downgrade the kernel. I would not bother...
Thanks.
Signature · 1 line
Dmitry
Quoted 9 lines · Dmitry Torokhov
/*
- * Some Fujitsu notebooks are having trouble with touchpads if
- * active multiplexing mode is activated. Luckily they don't have
- * external PS/2 ports so we can safely disable it.
- * ... apparently some Toshibas don't like MUX mode either and
- * die horrible death on reboot.
+ * Some laptops do increment active multiplexing mode correctly;
+ * unfortunately they are in minority.
*/
s/increment/implement/ ?
Dave
Dmitry Torokhov
maintainerQuoted 12 lines · Dave Jones
Quoted 9 lines · Dmitry Torokhov
/*
- * Some Fujitsu notebooks are having trouble with touchpads if
- * active multiplexing mode is activated. Luckily they don't have
- * external PS/2 ports so we can safely disable it.
- * ... apparently some Toshibas don't like MUX mode either and
- * die horrible death on reboot.
+ * Some laptops do increment active multiplexing mode correctly;
+ * unfortunately they are in minority.
*/
Quoted 1 line
s/increment/implement/ ?
Thanks Dave, I'll fix it up.
Signature · 1 line
Dmitry
Hans de Goede
Acked-byHi,
Quoted 13 lines · Dmitry Torokhov
Quoted 12 lines · Dave Jones
Quoted 9 lines · Dmitry Torokhov
/*
- * Some Fujitsu notebooks are having trouble with touchpads if
- * active multiplexing mode is activated. Luckily they don't have
- * external PS/2 ports so we can safely disable it.
- * ... apparently some Toshibas don't like MUX mode either and
- * die horrible death on reboot.
+ * Some laptops do increment active multiplexing mode correctly;
+ * unfortunately they are in minority.
*/
Quoted 3 lines
Quoted 1 line
s/increment/implement/ ?
Thanks Dave, I'll fix it up.
The patch looks good to me, and with the above fixup is:
Regards,
Hans
Quoted 8 lines · Dmitry Torokhov
Active multiplexing is a nice feature as it allows several pointing devices (such as touchpad and external mouse) use their native protocols at the same time. Unfortunately many manufacturers do not implement the feature properly even though they advertise it. The problematic implementations are never fixed, since Windows by default does not use this mode, and move from one BIOS/model of laptop to another. When active multiplexing is broken turning it on usually results in touchpad, keyboard, or both unresponsive.
Quoted 8 lines
With PS/2 usage on decline (most of PS/2 devices in use nowadays are internal laptop touchpads), I expect number of users who have laptops with working MUX implementation, docking stations with external PS/2 ports, and who are still using external PS/2 mice, to be rather small. Let's flip the default to be OFF and allow activating it through i8042.nomux=0 kernel option. We'll also keep DMI table where we can record known good models.
Signed-off-by Dmitry Torokhov <[email protected]>
Could we keep the old default / blacklist for the old laptops? We did something like that for ACPI, based on year of the bios.
Old laptops are not being made any more, so blacklist will not grow too fast...
Pavel
Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Dmitry Torokhov
maintainerHi Pavel,
Quoted 16 lines · Pavel Machek
Quoted 15 lines · Dmitry Torokhov
Active multiplexing is a nice feature as it allows several pointing devices (such as touchpad and external mouse) use their native protocols at the same time. Unfortunately many manufacturers do not implement the feature properly even though they advertise it. The problematic implementations are never fixed, since Windows by default does not use this mode, and move from one BIOS/model of laptop to another. When active multiplexing is broken turning it on usually results in touchpad, keyboard, or both unresponsive.
With PS/2 usage on decline (most of PS/2 devices in use nowadays are internal laptop touchpads), I expect number of users who have laptops with working MUX implementation, docking stations with external PS/2 ports, and who are still using external PS/2 mice, to be rather small. Let's flip the default to be OFF and allow activating it through i8042.nomux=0 kernel option. We'll also keep DMI table where we can record known good models.
Quoted 5 lines
Quoted 1 line
Signed-off-by Dmitry Torokhov <[email protected]>Could we keep the old default / blacklist for the old laptops? We did something like that for ACPI, based on year of the bios.
I would prefer not to. Unlike ACPI we do not see any improvement or decline in quality of MUX implementation over time. The implementations were buggy 10 years ago, 5 years go and they are buggy now. So there is not a point in time to draw a line at.
Quoted 2 lines
Old laptops are not being made any more, so blacklist will not grow too fast...
It is already quite big and I do not believe we've gotten nearly all of them. I guess in many cases people would try Linux, find that keyboard/mouse do not work at all and they are done and not bother filing bugs/reaching out on LKML, etc.
Again, the only people would might be negatively affected are people who have proper implementation of active MUX, who use both touchpad and external mouse at the same time and want touchpad in native mode, and who use PS/2 external mice.
Thanks.
Signature · 1 line
Dmitry