diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/acpi/power.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c index f0ed4414edb1..bb03fb0eaa0e 100644 --- a/drivers/acpi/power.c +++ b/drivers/acpi/power.c @@ -943,6 +943,7 @@ struct acpi_device *acpi_add_power_resource(acpi_handle handle) union acpi_object acpi_object; struct acpi_buffer buffer = { sizeof(acpi_object), &acpi_object }; acpi_status status; + u8 state_dummy; int result; acpi_bus_get_device(handle, &device); @@ -971,6 +972,10 @@ struct acpi_device *acpi_add_power_resource(acpi_handle handle) resource->order = acpi_object.power_resource.resource_order; resource->state = ACPI_POWER_RESOURCE_STATE_UNKNOWN; + /* Get the initial state or just flip it on if that fails. */ + if (acpi_power_get_state(resource, &state_dummy)) + __acpi_power_on(resource); + pr_info("%s [%s]\n", acpi_device_name(device), acpi_device_bid(device)); device->flags.match_driver = true; |