diff options
-rw-r--r-- | drivers/acpi/power.c | 10 | ||||
-rw-r--r-- | drivers/acpi/sleep.c | 1 | ||||
-rw-r--r-- | drivers/acpi/sleep.h | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c index 1c2b846c5776..3a6c9b741b23 100644 --- a/drivers/acpi/power.c +++ b/drivers/acpi/power.c | |||
@@ -864,6 +864,16 @@ void acpi_resume_power_resources(void) | |||
864 | 864 | ||
865 | mutex_unlock(&resource->resource_lock); | 865 | mutex_unlock(&resource->resource_lock); |
866 | } | 866 | } |
867 | |||
868 | mutex_unlock(&power_resource_list_lock); | ||
869 | } | ||
870 | |||
871 | void acpi_turn_off_unused_power_resources(void) | ||
872 | { | ||
873 | struct acpi_power_resource *resource; | ||
874 | |||
875 | mutex_lock(&power_resource_list_lock); | ||
876 | |||
867 | list_for_each_entry_reverse(resource, &acpi_power_resource_list, list_node) { | 877 | list_for_each_entry_reverse(resource, &acpi_power_resource_list, list_node) { |
868 | int result, state; | 878 | int result, state; |
869 | 879 | ||
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index a4327af676fe..097d630ab886 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c | |||
@@ -474,6 +474,7 @@ static void acpi_pm_start(u32 acpi_state) | |||
474 | */ | 474 | */ |
475 | static void acpi_pm_end(void) | 475 | static void acpi_pm_end(void) |
476 | { | 476 | { |
477 | acpi_turn_off_unused_power_resources(); | ||
477 | acpi_scan_lock_release(); | 478 | acpi_scan_lock_release(); |
478 | /* | 479 | /* |
479 | * This is necessary in case acpi_pm_finish() is not called during a | 480 | * This is necessary in case acpi_pm_finish() is not called during a |
diff --git a/drivers/acpi/sleep.h b/drivers/acpi/sleep.h index a9cc34e663f9..a82ff74faf7a 100644 --- a/drivers/acpi/sleep.h +++ b/drivers/acpi/sleep.h | |||
@@ -6,6 +6,7 @@ extern struct list_head acpi_wakeup_device_list; | |||
6 | extern struct mutex acpi_device_lock; | 6 | extern struct mutex acpi_device_lock; |
7 | 7 | ||
8 | extern void acpi_resume_power_resources(void); | 8 | extern void acpi_resume_power_resources(void); |
9 | extern void acpi_turn_off_unused_power_resources(void); | ||
9 | 10 | ||
10 | static inline acpi_status acpi_set_waking_vector(u32 wakeup_address) | 11 | static inline acpi_status acpi_set_waking_vector(u32 wakeup_address) |
11 | { | 12 | { |