aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/sleep.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/sleep.c')
-rw-r--r--drivers/acpi/sleep.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index 7f251dd1a687..2f0d4db40a9e 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -629,6 +629,7 @@ static int acpi_freeze_begin(void)
629 629
630static int acpi_freeze_prepare(void) 630static int acpi_freeze_prepare(void)
631{ 631{
632 acpi_enable_wakeup_devices(ACPI_STATE_S0);
632 acpi_enable_all_wakeup_gpes(); 633 acpi_enable_all_wakeup_gpes();
633 acpi_os_wait_events_complete(); 634 acpi_os_wait_events_complete();
634 enable_irq_wake(acpi_gbl_FADT.sci_interrupt); 635 enable_irq_wake(acpi_gbl_FADT.sci_interrupt);
@@ -637,6 +638,7 @@ static int acpi_freeze_prepare(void)
637 638
638static void acpi_freeze_restore(void) 639static void acpi_freeze_restore(void)
639{ 640{
641 acpi_disable_wakeup_devices(ACPI_STATE_S0);
640 disable_irq_wake(acpi_gbl_FADT.sci_interrupt); 642 disable_irq_wake(acpi_gbl_FADT.sci_interrupt);
641 acpi_enable_all_runtime_gpes(); 643 acpi_enable_all_runtime_gpes();
642} 644}
@@ -806,21 +808,6 @@ static void acpi_sleep_hibernate_setup(void)
806static inline void acpi_sleep_hibernate_setup(void) {} 808static inline void acpi_sleep_hibernate_setup(void) {}
807#endif /* !CONFIG_HIBERNATION */ 809#endif /* !CONFIG_HIBERNATION */
808 810
809int acpi_suspend(u32 acpi_state)
810{
811 suspend_state_t states[] = {
812 [1] = PM_SUSPEND_STANDBY,
813 [3] = PM_SUSPEND_MEM,
814 [5] = PM_SUSPEND_MAX
815 };
816
817 if (acpi_state < 6 && states[acpi_state])
818 return pm_suspend(states[acpi_state]);
819 if (acpi_state == 4)
820 return hibernate();
821 return -EINVAL;
822}
823
824static void acpi_power_off_prepare(void) 811static void acpi_power_off_prepare(void)
825{ 812{
826 /* Prepare to power off the system */ 813 /* Prepare to power off the system */