aboutsummaryrefslogtreecommitdiff
path: root/sys/i386
diff options
context:
space:
mode:
authorMitsuru IWASAKI <iwasaki@FreeBSD.org>2001-11-06 15:00:30 +0000
committerMitsuru IWASAKI <iwasaki@FreeBSD.org>2001-11-06 15:00:30 +0000
commit1611ea8727e4b15505a42d666861427916244435 (patch)
tree048d74e450c6b6eaaa11cab65d2c0a47191e40d2 /sys/i386
parentff3d0079a93c5195e548c59d960082328bfc167d (diff)
downloadsrc-1611ea8727e4b15505a42d666861427916244435.tar.gz
src-1611ea8727e4b15505a42d666861427916244435.zip
Add S4BIOS sleep (BIOS hibernation) and DSDT overriding support.
- Add S4BIOS sleep implementation. This will works well if MIB hw.acpi.s4bios is set (and of course BIOS supports it and hibernation is enabled correctly). - Add DSDT overriding support which is submitted by takawata originally. If loader tunable acpi_dsdt_load="YES" and DSDT file is set to acpi_dsdt_name (default DSDT file name is /boot/acpi_dsdt.aml), ACPI CA core loads DSDT from given file rather than BIOS memory block. DSDT file can be generated by iasl in ports/devel/acpicatools/. - Add new files so that we can add our proposed additional code to Intel ACPI CA into these files temporary. They will be removed when similar code is added into ACPI CA officially.
Notes
Notes: svn path=/head/; revision=86133
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/acpica/acpi_wakeup.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/i386/acpica/acpi_wakeup.c b/sys/i386/acpica/acpi_wakeup.c
index ad67313469d0..3ba70b1ef330 100644
--- a/sys/i386/acpica/acpi_wakeup.c
+++ b/sys/i386/acpica/acpi_wakeup.c
@@ -52,6 +52,8 @@
#include "acpi.h"
+#include <dev/acpica/acpica_support.h>
+
#include <dev/acpica/acpivar.h>
#include "acpi_wakecode.h"
@@ -236,7 +238,13 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state)
acpi_printcpu();
}
- if ((status = AcpiEnterSleepState(state)) != AE_OK) {
+ if (state == ACPI_STATE_S4 && sc->acpi_s4bios) {
+ status = AcpiEnterSleepStateS4Bios();
+ } else {
+ status = AcpiEnterSleepState(state);
+ }
+
+ if (status != AE_OK) {
device_printf(sc->acpi_dev,
"AcpiEnterSleepState failed - %s\n",
AcpiFormatException(status));