• Rafael J. Wysocki's avatar
    ACPI / PM: Make acpi_pm_device_sleep_state() follow the specification · db4fd57a
    Rafael J. Wysocki authored
    commit dbe9a2ed upstream.
    
    The comparison between the system sleep state being entered
    and the lowest system sleep state the given device may wake up
    from in acpi_pm_device_sleep_state() is reversed, because the
    specification (ACPI 5.0) says that for wakeup to work:
    
    "The sleeping state being entered must be less than or equal to the
     power state declared in element 1 of the _PRW object."
    
    In other words, the state returned by _PRW is the deepest
    (lowest-power) system sleep state the device is capable of waking up
    the system from.
    
    Moreover, acpi_pm_device_sleep_state() also should check if the
    wakeup capability is supported through ACPI, because in principle it
    may be done via native PCIe PME, for example, in which case _SxW
    should not be evaluated.
    Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    db4fd57a
sleep.c 22.1 KB