diff options
author | Michael Brown | 2016-07-11 22:23:03 +0200 |
---|---|---|
committer | Michael Brown | 2016-07-11 22:23:03 +0200 |
commit | df85901768622b8aea94d39a28effdbf90f7d4f0 (patch) | |
tree | a6ae8c165518987aeba8447e09f6fc7f6f811e90 /src/arch/x86/interface/pcbios/acpipwr.c | |
parent | [acpi] Add support for ACPI power off (diff) | |
download | ipxe-df85901768622b8aea94d39a28effdbf90f7d4f0.tar.gz ipxe-df85901768622b8aea94d39a28effdbf90f7d4f0.tar.xz ipxe-df85901768622b8aea94d39a28effdbf90f7d4f0.zip |
[acpi] Allow time for ACPI power off to take effect
The ACPI power off sequence may not take effect immediately. Delay
for one second, to eliminate potentially confusing log messages such
as "Could not power off: Error 0x43902001 (http://ipx".
Reported-by: Leonid Vasetsky <leonidv@velostrata.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch/x86/interface/pcbios/acpipwr.c')
-rw-r--r-- | src/arch/x86/interface/pcbios/acpipwr.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/arch/x86/interface/pcbios/acpipwr.c b/src/arch/x86/interface/pcbios/acpipwr.c index 63b986b6..d19f972d 100644 --- a/src/arch/x86/interface/pcbios/acpipwr.c +++ b/src/arch/x86/interface/pcbios/acpipwr.c @@ -23,6 +23,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); +#include <unistd.h> #include <errno.h> #include <byteswap.h> #include <realmode.h> @@ -111,6 +112,11 @@ int acpi_poweroff ( void ) { ACPI_PM1_CNT_SLP_EN ), pm1b_cnt ); } + /* On some systems, execution will continue briefly. Delay to + * avoid potentially confusing log messages. + */ + mdelay ( 1000 ); + DBGC ( colour, "ACPI power off failed\n" ); return -EPROTO; } |