summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoriwasaki <iwasaki@FreeBSD.org>2012-05-29 05:28:34 +0000
committeriwasaki <iwasaki@FreeBSD.org>2012-05-29 05:28:34 +0000
commit7d6eef0e81c1ee50aaffb050bab29d6a741b11f9 (patch)
treecb0cae46a08835b50b8e6f21601fe67ca46f78e0
parent441e5f189b2e62bc1391f758fb23bd6ea4b8863f (diff)
downloadFreeBSD-src-7d6eef0e81c1ee50aaffb050bab29d6a741b11f9.zip
FreeBSD-src-7d6eef0e81c1ee50aaffb050bab29d6a741b11f9.tar.gz
Reorder resume procedures.
DEVICE_RESUME() should be done before AcpiLeaveSleepState() because PCI config space evaluation can be occurred during control method executions. This should fix one of the hang up problems on resuming. MFC after: 3 days
-rw-r--r--sys/dev/acpica/acpi.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c
index 0125174..41cd9f1 100644
--- a/sys/dev/acpica/acpi.c
+++ b/sys/dev/acpica/acpi.c
@@ -2773,12 +2773,12 @@ backout:
acpi_wake_prep_walk(state);
sc->acpi_sstate = ACPI_STATE_S0;
}
+ if (slp_state >= ACPI_SS_DEV_SUSPEND)
+ DEVICE_RESUME(root_bus);
if (slp_state >= ACPI_SS_SLP_PREP) {
AcpiLeaveSleepStatePrep(state, acpi_sleep_flags);
AcpiLeaveSleepState(state);
}
- if (slp_state >= ACPI_SS_DEV_SUSPEND)
- DEVICE_RESUME(root_bus);
if (slp_state >= ACPI_SS_SLEPT) {
acpi_resync_clock(sc);
acpi_enable_fixed_events(sc);
OpenPOWER on IntegriCloud