]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/3.18.103/input-i8042-enable-mux-on-sony-vaio-vgn-cs-series-to-fix-touchpad.patch
Linux 4.14.95
[thirdparty/kernel/stable-queue.git] / releases / 3.18.103 / input-i8042-enable-mux-on-sony-vaio-vgn-cs-series-to-fix-touchpad.patch
CommitLineData
02306000
GKH
1From 04bb1719c4de94700056241d4c0fe3c1413f5aff Mon Sep 17 00:00:00 2001
2From: Ondrej Zary <linux@rainbow-software.org>
3Date: Tue, 3 Apr 2018 10:24:34 -0700
4Subject: Input: i8042 - enable MUX on Sony VAIO VGN-CS series to fix touchpad
5
6From: Ondrej Zary <linux@rainbow-software.org>
7
8commit 04bb1719c4de94700056241d4c0fe3c1413f5aff upstream.
9
10The touch sensor buttons on Sony VAIO VGN-CS series laptops (e.g.
11VGN-CS31S) are a separate PS/2 device. As the MUX is disabled for all
12VAIO machines by the nomux blacklist, the data from touch sensor
13buttons and touchpad are combined. The protocol used by the buttons is
14probably similar to the touchpad protocol (both are Synaptics) so both
15devices get enabled. The controller combines the data, creating a mess
16which results in random button clicks, touchpad stopping working and
17lost sync error messages:
18psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 4
19psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
20psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
21psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
22psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
23psmouse serio1: issuing reconnect request
24
25Add a new i8042_dmi_forcemux_table whitelist with VGN-CS.
26With MUX enabled, touch sensor buttons are detected as separate device
27(and left disabled as there's currently no driver), fixing all touchpad
28problems.
29
30Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
31Cc: stable@vger.kernel.org
32Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
33Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
34
35---
36 drivers/input/serio/i8042-x86ia64io.h | 17 +++++++++++++++++
37 1 file changed, 17 insertions(+)
38
39--- a/drivers/input/serio/i8042-x86ia64io.h
40+++ b/drivers/input/serio/i8042-x86ia64io.h
41@@ -712,6 +712,20 @@ static const struct dmi_system_id __init
42 { }
43 };
44
45+static const struct dmi_system_id i8042_dmi_forcemux_table[] __initconst = {
46+ {
47+ /*
48+ * Sony Vaio VGN-CS series require MUX or the touch sensor
49+ * buttons will disturb touchpad operation
50+ */
51+ .matches = {
52+ DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
53+ DMI_MATCH(DMI_PRODUCT_NAME, "VGN-CS"),
54+ },
55+ },
56+ { }
57+};
58+
59 /*
60 * Some Wistron based laptops need us to explicitly enable the 'Dritek
61 * keyboard extension' to make their extra keys start generating scancodes.
62@@ -1124,6 +1138,9 @@ static int __init i8042_platform_init(vo
63 if (dmi_check_system(i8042_dmi_nomux_table))
64 i8042_nomux = true;
65
66+ if (dmi_check_system(i8042_dmi_forcemux_table))
67+ i8042_nomux = false;
68+
69 if (dmi_check_system(i8042_dmi_notimeout_table))
70 i8042_notimeout = true;
71