• Daniel Drake's avatar
    Input: psmouse - fix Synaptics detection when protocol is disabled · e4e6efd2
    Daniel Drake authored
    For configurations where Synaptics hardware is present but the Synaptics
    extensions support is not compiled in, the mouse is reprobed and a new
    device is allocated on every suspend/resume.
    
    During probe, psmouse_switch_protocol() calls psmouse_extensions() with
    set_properties=1. This calls the dummy synaptics_init() which returns an
    error code, instructing us not to use the synaptics extensions.
    
    During resume, psmouse_reconnect() calls psmouse_extensions() with
    set_properties=0, in which case call to synaptics_init() is bypassed and
    PSMOUSE_SYNAPTICS is returned. Since the result is different from previous
    attempt psmouse_reconnect() fails and full re-probe happens.
    
    Fix this by tweaking the set_properties=0 codepath in psmouse_extensions()
    to be more careful about offering PSMOUSE_SYNAPTICS extensions.
    Signed-off-by: default avatarDaniel Drake <dsd@laptop.org>
    Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
    e4e6efd2
synaptics.c 20.4 KB