| From: Ondrej Zary <linux@rainbow-software.org> |
| Date: Tue, 3 Apr 2018 10:24:34 -0700 |
| Subject: Input: i8042 - enable MUX on Sony VAIO VGN-CS series to fix touchpad |
| |
| commit 04bb1719c4de94700056241d4c0fe3c1413f5aff upstream. |
| |
| The touch sensor buttons on Sony VAIO VGN-CS series laptops (e.g. |
| VGN-CS31S) are a separate PS/2 device. As the MUX is disabled for all |
| VAIO machines by the nomux blacklist, the data from touch sensor |
| buttons and touchpad are combined. The protocol used by the buttons is |
| probably similar to the touchpad protocol (both are Synaptics) so both |
| devices get enabled. The controller combines the data, creating a mess |
| which results in random button clicks, touchpad stopping working and |
| lost sync error messages: |
| psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 4 |
| psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1 |
| psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1 |
| psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1 |
| psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1 |
| psmouse serio1: issuing reconnect request |
| |
| Add a new i8042_dmi_forcemux_table whitelist with VGN-CS. |
| With MUX enabled, touch sensor buttons are detected as separate device |
| (and left disabled as there's currently no driver), fixing all touchpad |
| problems. |
| |
| Signed-off-by: Ondrej Zary <linux@rainbow-software.org> |
| Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> |
| [bwh: Backported to 3.16: adjust context] |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/input/serio/i8042-x86ia64io.h | 17 +++++++++++++++++ |
| 1 file changed, 17 insertions(+) |
| |
| --- a/drivers/input/serio/i8042-x86ia64io.h |
| +++ b/drivers/input/serio/i8042-x86ia64io.h |
| @@ -516,6 +516,20 @@ static const struct dmi_system_id __init |
| { } |
| }; |
| |
| +static const struct dmi_system_id i8042_dmi_forcemux_table[] __initconst = { |
| + { |
| + /* |
| + * Sony Vaio VGN-CS series require MUX or the touch sensor |
| + * buttons will disturb touchpad operation |
| + */ |
| + .matches = { |
| + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), |
| + DMI_MATCH(DMI_PRODUCT_NAME, "VGN-CS"), |
| + }, |
| + }, |
| + { } |
| +}; |
| + |
| static const struct dmi_system_id __initconst i8042_dmi_reset_table[] = { |
| { |
| /* MSI Wind U-100 */ |
| @@ -1116,6 +1130,9 @@ static int __init i8042_platform_init(vo |
| if (dmi_check_system(i8042_dmi_nomux_table)) |
| i8042_nomux = true; |
| |
| + if (dmi_check_system(i8042_dmi_forcemux_table)) |
| + i8042_nomux = false; |
| + |
| if (dmi_check_system(i8042_dmi_notimeout_table)) |
| i8042_notimeout = true; |
| |