ACPI / PM: Fix device power state value after transitions to D3cold
When a transition to the D3cold power state is requested, acpi_device_set_power() first carries out a transition to D3hot and then turns off the device's power resources. However, it fails to update the device's power.state field appropriately and D3hot is stored in it as a result. Fix this, but make sure that the device's power state will be D3hot if its power resources cannot be turned off in the final step. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
898fee4f6e
commit
e5656271b0
|
@ -264,8 +264,11 @@ int acpi_device_set_power(struct acpi_device *device, int state)
|
||||||
if (result)
|
if (result)
|
||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
if (cut_power)
|
if (cut_power) {
|
||||||
result = acpi_power_transition(device, ACPI_STATE_D3_COLD);
|
device->power.state = state;
|
||||||
|
state = ACPI_STATE_D3_COLD;
|
||||||
|
result = acpi_power_transition(device, state);
|
||||||
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
if (result) {
|
if (result) {
|
||||||
|
|
Loading…
Reference in New Issue