aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/sleep.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-03-14 23:29:21 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-14 23:29:21 -0400
commita3d3203e4bb40f253b1541e310dc0f9305be7c84 (patch)
treeac0d74a607493053da92244a6763e503c5904f4f /drivers/acpi/sleep.c
parentf937331b3f92cb2f67bc81baa1b8cc5198c439e5 (diff)
parentec28dcc6b4c00b78ad269ad5b85ebd5c2d504825 (diff)
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (34 commits) ACPI: processor: push file static MADT pointer into internal map_madt_entry() ACPI: processor: refactor internal map_lsapic_id() ACPI: processor: refactor internal map_x2apic_id() ACPI: processor: refactor internal map_lapic_id() ACPI: processor: driver doesn't need to evaluate _PDC ACPI: processor: remove early _PDC optin quirks ACPI: processor: add internal processor_physically_present() ACPI: processor: move acpi_get_cpuid into processor_core.c ACPI: processor: export acpi_get_cpuid() ACPI: processor: mv processor_pdc.c processor_core.c ACPI: processor: mv processor_core.c processor_driver.c ACPI: plan to delete "acpi=ht" boot option ACPI: remove "acpi=ht" DMI blacklist PNPACPI: add bus number support PNPACPI: add window support resource: add window support resource: add bus number support resource: expand IORESOURCE_TYPE_BITS to make room for bus resource type acpiphp: Execute ACPI _REG method for hotadded devices ACPI video: Be more liberal in validating _BQC behaviour ...
Diffstat (limited to 'drivers/acpi/sleep.c')
-rw-r--r--drivers/acpi/sleep.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index 3bde594a9979..f74834a544fd 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -552,8 +552,17 @@ static void acpi_hibernation_leave(void)
552 hibernate_nvs_restore(); 552 hibernate_nvs_restore();
553} 553}
554 554
555static void acpi_pm_enable_gpes(void) 555static int acpi_pm_pre_restore(void)
556{ 556{
557 acpi_disable_all_gpes();
558 acpi_os_wait_events_complete(NULL);
559 acpi_ec_suspend_transactions();
560 return 0;
561}
562
563static void acpi_pm_restore_cleanup(void)
564{
565 acpi_ec_resume_transactions();
557 acpi_enable_all_runtime_gpes(); 566 acpi_enable_all_runtime_gpes();
558} 567}
559 568
@@ -565,8 +574,8 @@ static struct platform_hibernation_ops acpi_hibernation_ops = {
565 .prepare = acpi_pm_prepare, 574 .prepare = acpi_pm_prepare,
566 .enter = acpi_hibernation_enter, 575 .enter = acpi_hibernation_enter,
567 .leave = acpi_hibernation_leave, 576 .leave = acpi_hibernation_leave,
568 .pre_restore = acpi_pm_disable_gpes, 577 .pre_restore = acpi_pm_pre_restore,
569 .restore_cleanup = acpi_pm_enable_gpes, 578 .restore_cleanup = acpi_pm_restore_cleanup,
570}; 579};
571 580
572/** 581/**
@@ -618,8 +627,8 @@ static struct platform_hibernation_ops acpi_hibernation_ops_old = {
618 .prepare = acpi_pm_disable_gpes, 627 .prepare = acpi_pm_disable_gpes,
619 .enter = acpi_hibernation_enter, 628 .enter = acpi_hibernation_enter,
620 .leave = acpi_hibernation_leave, 629 .leave = acpi_hibernation_leave,
621 .pre_restore = acpi_pm_disable_gpes, 630 .pre_restore = acpi_pm_pre_restore,
622 .restore_cleanup = acpi_pm_enable_gpes, 631 .restore_cleanup = acpi_pm_restore_cleanup,
623 .recover = acpi_pm_finish, 632 .recover = acpi_pm_finish,
624}; 633};
625#endif /* CONFIG_HIBERNATION */ 634#endif /* CONFIG_HIBERNATION */