• Hans de Goede's avatar
    platform/x86: x86-android-tablets: Fix Lenovo Yoga Tablet 2 830/1050 poweroff again · 4ce8f4c2
    Hans de Goede authored
    Commit 98f30d0e ("ACPI: power: Switch to sys-off handler API")
    switched the ACPI sleep code from directly setting the old global
    pm_power_off handler to using the new register_sys_off_handler()
    mechanism with a priority of SYS_OFF_PRIO_FIRMWARE.
    
    This is a problem in special cases where the old global pm_power_off
    handler later gets overwritten, such as the Lenovo Tab2 poweroff bugfix
    in x86-android-tablets. The old global pm_power_off handler gets run
    with a priority of SYS_OFF_PRIO_DEFAULT which is lower then
    SYS_OFF_PRIO_FIRMWARE, causing the troublesome ACPI poweroff (which
    freezes the system) to run first.
    
    Switch the registering of lenovo_yoga_tab2_830_1050_power_off over to
    register_sys_off_handler() with a priority of SYS_OFF_PRIO_FIRMWARE + 1
    so that it will run before acpi_power_off() to fix this.
    
    Fixes: 98f30d0e ("ACPI: power: Switch to sys-off handler API")
    Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Link: https://lore.kernel.org/r/20220708131412.81078-2-hdegoede@redhat.com
    4ce8f4c2
x86-android-tablets.c 42.3 KB