diff options
author | Mitsuru IWASAKI <iwasaki@FreeBSD.org> | 2001-11-06 15:00:30 +0000 |
---|---|---|
committer | Mitsuru IWASAKI <iwasaki@FreeBSD.org> | 2001-11-06 15:00:30 +0000 |
commit | 1611ea8727e4b15505a42d666861427916244435 (patch) | |
tree | 048d74e450c6b6eaaa11cab65d2c0a47191e40d2 /sys/i386 | |
parent | ff3d0079a93c5195e548c59d960082328bfc167d (diff) | |
download | src-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.c | 10 |
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)); |