lkml.org 
[lkml]   [2018]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 56/72] Input: i8042 - enable MUX on Sony VAIO VGN-CS series to fix touchpad
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Ondrej Zary <linux@rainbow-software.org>

    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>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    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
    @@ -530,6 +530,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"),
    + },
    + },
    + { }
    +};
    +
    /*
    * On some Asus laptops, just running self tests cause problems.
    */
    @@ -1230,6 +1244,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;


    \
     
     \ /
      Last update: 2018-04-06 16:59    [W:4.424 / U:0.280 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site