• Hans de Goede's avatar
    platform/x86: intel-vbtn: Eval VBDL after registering our notifier · 26173179
    Hans de Goede authored
    The VBDL ACPI method enables button/switch reporting through the
    intel-vbtn device. In some cases the embedded-controller (EC) might
    call Notify() on the intel-vbtn device immediately after the
    the VBDL call to make sure that the OS is synced with the EC's
    button and switch state.
    
    If we register our notify_handler after evaluating VBDL this means
    that we might miss the Notify() calls made by the EC to sync the
    state.
    
    E.g. the HP Stream x360 Convertible PC 11 has a VGBS method which
    always returns 0, independent of the actual SW_TABLET_MODE state
    of the device; and immediately after the VBDL call it calls
    Notify(0xCD) or Notify(0xCC) to report the actual state.
    
    Move the evaluation of VBDL to after registering our notify_handler
    so that we don't miss any events.
    
    Cc: Elia Devito <eliadevito@gmail.com>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20210115161850.117614-4-hdegoede@redhat.com
    26173179
intel-vbtn.c 11.1 KB