• Hans de Goede's avatar
    platform/x86: ideapad-laptop: Stop sending KEY_TOUCHPAD_TOGGLE · e3271a59
    Hans de Goede authored
    Commit 5829f8a8 ("platform/x86: ideapad-laptop: Send
    KEY_TOUCHPAD_TOGGLE on some models") made ideapad-laptop send
    KEY_TOUCHPAD_TOGGLE when we receive an ACPI notify with VPC event bit 5 set
    and the touchpad-state has not been changed by the EC itself already.
    
    This was done under the assumption that this would be good to do to make
    the touchpad-toggle hotkey work on newer models where the EC does not
    toggle the touchpad on/off itself (because it is not routed through
    the PS/2 controller, but uses I2C).
    
    But it turns out that at least some models, e.g. the Yoga 7-15ITL5 the EC
    triggers an ACPI notify with VPC event bit 5 set on resume, which would
    now cause a spurious KEY_TOUCHPAD_TOGGLE on resume to which the desktop
    environment responds by disabling the touchpad in software, breaking
    the touchpad (until manually re-enabled) on resume.
    
    It was never confirmed that sending KEY_TOUCHPAD_TOGGLE actually improves
    things on new models and at least some new models like the Yoga 7-15ITL5
    don't have a touchpad on/off toggle hotkey at all, while still sending
    ACPI notify events with VPC event bit 5 set.
    
    So it seems best to revert the change to send KEY_TOUCHPAD_TOGGLE when
    receiving an ACPI notify events with VPC event bit 5 and the touchpad
    state as reported by the EC has not changed.
    
    Note this is not a full revert the code to cache the last EC touchpad
    state is kept to avoid sending spurious KEY_TOUCHPAD_ON / _OFF events
    on resume.
    
    Fixes: 5829f8a8 ("platform/x86: ideapad-laptop: Send KEY_TOUCHPAD_TOGGLE on some models")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=217234
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20230330194644.64628-1-hdegoede@redhat.com
    e3271a59
ideapad-laptop.c 48.7 KB