• Rafael J. Wysocki's avatar
    ACPI / scan: Full transition to D3cold in acpi_device_unregister() · 0aa120a0
    Rafael J. Wysocki authored
    In order to drop reference counts of all power resources used by an
    ACPI device node being removed, acpi_device_unregister() calls
    acpi_power_transition(device, ACPI_STATE_D3_COLD), which effectively
    transitions the device node into D3cold if it uses any power
    resources.  However, for some device nodes it may not be appropriate
    to remove power from them entirely before putting them into D3hot
    before.  On the other hand, executing _PS3 for devices that don't
    use power resources before removing them shouldn't really hurt.
    In fact, that is done by acpi_bus_hot_remove_device(), but this is
    not the right place to do it, because the bus trimming may have
    caused power to be removed from the device node in question already
    For these reasons, make acpi_device_unregister() carry out full
    power-off transition for all device nodes supporting that and remove
    the direct evaluation of _PS3 from acpi_bus_hot_remove_device().
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
scan.c 46 KB