diff options
author | iwasaki <iwasaki@FreeBSD.org> | 2012-05-29 05:28:34 +0000 |
---|---|---|
committer | iwasaki <iwasaki@FreeBSD.org> | 2012-05-29 05:28:34 +0000 |
commit | 7d6eef0e81c1ee50aaffb050bab29d6a741b11f9 (patch) | |
tree | cb0cae46a08835b50b8e6f21601fe67ca46f78e0 | |
parent | 441e5f189b2e62bc1391f758fb23bd6ea4b8863f (diff) | |
download | FreeBSD-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.c | 4 |
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); |