History log of /openbsd-current/sys/dev/acpi/acpi_x86.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.22 25-Jun-2024 kettenis

Implement sleep button and EC events as wakeup events. Print the wakeup
reason.

ok mglocker@, deraadt@


# 1.21 29-May-2024 kettenis

Implement the guts for "suspend-to-idle" on amd64. This enables suspend
on machines that don't support S3. In its current state it doesn't save
a lot of power, but this should improve over time. Implementation of
wakeup methods is incomplete which means that some machine can't resume
at the moment.

ok mglocker@, mlarkin@, stsp@, deraadt@


# 1.20 28-May-2024 kettenis

Garbage collect sleep_abort(); it doesn't do anything useful anymore.

ok deraadt@, mlarkin@


# 1.19 27-May-2024 kettenis

Set sc_state to ACPI_STATE_S0 at the end of resume instead of at the start
such that ACPI resume code can see what state we're resuming from.

ok deraadt@


# 1.18 13-May-2024 kettenis

Ignore button events in the first 10 seconds after resume. On some ACPI
implementations pressing the power button to wake up a machine will cause
a power button notification to happen for that button press This would
initiate a power down, which isn't the user's intent.

Based on earlier diffs from deraadt@ and James Cook.

ok mlarkin@, "I'm not opposed" cheloha@


Revision tags: OPENBSD_7_4_BASE OPENBSD_7_5_BASE
# 1.17 06-Jul-2023 deraadt

moving acpiioctl to a different file than acpiopen is not going to work
for ramdisks. noticed by anton.
this must be reconsidered.


# 1.16 05-Jul-2023 tobhe

Move acpiioctl to acpi_x86.c, it is only used up on i386 and amd64.

ok kettenis@ deraadt@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE
# 1.15 06-Mar-2022 deraadt

oops, typo, spotted by Mikhail


# 1.14 05-Mar-2022 deraadt

Improve wording for trying S5 instead of S4


# 1.13 17-Feb-2022 deraadt

If S4 is not available, use S5 for the ACPI-transitions in hibernate support.
A bunch of servers work now.
Really close to a 3-line diff...
ok kettenis


# 1.12 17-Feb-2022 jsg

remove unused defines


# 1.11 17-Feb-2022 jsg

reduce includes
ok deraadt@


# 1.10 16-Feb-2022 deraadt

rev 1.4 was wrong to put potential IO operations after _GTS.
re-creating the original (2 weeks ago) order of last-minute-disk-parking
needs a different approach, hmm.


# 1.9 16-Feb-2022 deraadt

if the lids indicate we are not supposed to wakeup, return EAGAIN rather
than scheduling an acpi thread


# 1.8 16-Feb-2022 deraadt

change MD gosleep() and sleep_finish() to return int, the MI code will be
able to react to this suitably.


# 1.7 15-Feb-2022 deraadt

Since acpitoshiba brightness button processing no longer plays games
with AML parsing outside the acpi thread, the locking-release dance
around wsdisplay_{suspend,resume} can be removed
ok kettenis


# 1.6 15-Feb-2022 deraadt

when the MI suspend code encounters problems, we need a way to
reset the MD state before bailing out. New MD function sleep_abort()
does that.


# 1.5 15-Feb-2022 deraadt

MI disable_lid_wakeups() is not needed, x86 systems can do this
in sleep_resume(), which seems sensible for other future systems also


# 1.4 15-Feb-2022 deraadt

The DVACT_POWERDOWN step was accidentally moved in relation to some MD
steps, so shuffle the MD steps to reinforce the order.


# 1.3 14-Feb-2022 kettenis

Make sure we call acpi_resume_cpu() with the right ACPI state. This was
accidentally broken with the reorganization of the suspend/resume code that
was committed a few days ago.

ok deraadt@


# 1.2 14-Feb-2022 deraadt

acpi_indicator() can take the softc*, instead of void*


# 1.1 09-Feb-2022 deraadt

Move x86-only stubs used by kern/subr_suspend.c into dev/acpi/acpi_x86.c
for sharing between i386 and amd64.
ok mlarkin kettenis


# 1.21 29-May-2024 kettenis

Implement the guts for "suspend-to-idle" on amd64. This enables suspend
on machines that don't support S3. In its current state it doesn't save
a lot of power, but this should improve over time. Implementation of
wakeup methods is incomplete which means that some machine can't resume
at the moment.

ok mglocker@, mlarkin@, stsp@, deraadt@


# 1.20 28-May-2024 kettenis

Garbage collect sleep_abort(); it doesn't do anything useful anymore.

ok deraadt@, mlarkin@


# 1.19 27-May-2024 kettenis

Set sc_state to ACPI_STATE_S0 at the end of resume instead of at the start
such that ACPI resume code can see what state we're resuming from.

ok deraadt@


# 1.18 13-May-2024 kettenis

Ignore button events in the first 10 seconds after resume. On some ACPI
implementations pressing the power button to wake up a machine will cause
a power button notification to happen for that button press This would
initiate a power down, which isn't the user's intent.

Based on earlier diffs from deraadt@ and James Cook.

ok mlarkin@, "I'm not opposed" cheloha@


Revision tags: OPENBSD_7_4_BASE OPENBSD_7_5_BASE
# 1.17 06-Jul-2023 deraadt

moving acpiioctl to a different file than acpiopen is not going to work
for ramdisks. noticed by anton.
this must be reconsidered.


# 1.16 05-Jul-2023 tobhe

Move acpiioctl to acpi_x86.c, it is only used up on i386 and amd64.

ok kettenis@ deraadt@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE
# 1.15 06-Mar-2022 deraadt

oops, typo, spotted by Mikhail


# 1.14 05-Mar-2022 deraadt

Improve wording for trying S5 instead of S4


# 1.13 17-Feb-2022 deraadt

If S4 is not available, use S5 for the ACPI-transitions in hibernate support.
A bunch of servers work now.
Really close to a 3-line diff...
ok kettenis


# 1.12 17-Feb-2022 jsg

remove unused defines


# 1.11 17-Feb-2022 jsg

reduce includes
ok deraadt@


# 1.10 16-Feb-2022 deraadt

rev 1.4 was wrong to put potential IO operations after _GTS.
re-creating the original (2 weeks ago) order of last-minute-disk-parking
needs a different approach, hmm.


# 1.9 16-Feb-2022 deraadt

if the lids indicate we are not supposed to wakeup, return EAGAIN rather
than scheduling an acpi thread


# 1.8 16-Feb-2022 deraadt

change MD gosleep() and sleep_finish() to return int, the MI code will be
able to react to this suitably.


# 1.7 15-Feb-2022 deraadt

Since acpitoshiba brightness button processing no longer plays games
with AML parsing outside the acpi thread, the locking-release dance
around wsdisplay_{suspend,resume} can be removed
ok kettenis


# 1.6 15-Feb-2022 deraadt

when the MI suspend code encounters problems, we need a way to
reset the MD state before bailing out. New MD function sleep_abort()
does that.


# 1.5 15-Feb-2022 deraadt

MI disable_lid_wakeups() is not needed, x86 systems can do this
in sleep_resume(), which seems sensible for other future systems also


# 1.4 15-Feb-2022 deraadt

The DVACT_POWERDOWN step was accidentally moved in relation to some MD
steps, so shuffle the MD steps to reinforce the order.


# 1.3 14-Feb-2022 kettenis

Make sure we call acpi_resume_cpu() with the right ACPI state. This was
accidentally broken with the reorganization of the suspend/resume code that
was committed a few days ago.

ok deraadt@


# 1.2 14-Feb-2022 deraadt

acpi_indicator() can take the softc*, instead of void*


# 1.1 09-Feb-2022 deraadt

Move x86-only stubs used by kern/subr_suspend.c into dev/acpi/acpi_x86.c
for sharing between i386 and amd64.
ok mlarkin kettenis


# 1.18 13-May-2024 kettenis

Ignore button events in the first 10 seconds after resume. On some ACPI
implementations pressing the power button to wake up a machine will cause
a power button notification to happen for that button press This would
initiate a power down, which isn't the user's intent.

Based on earlier diffs from deraadt@ and James Cook.

ok mlarkin@, "I'm not opposed" cheloha@


Revision tags: OPENBSD_7_4_BASE OPENBSD_7_5_BASE
# 1.17 06-Jul-2023 deraadt

moving acpiioctl to a different file than acpiopen is not going to work
for ramdisks. noticed by anton.
this must be reconsidered.


# 1.16 05-Jul-2023 tobhe

Move acpiioctl to acpi_x86.c, it is only used up on i386 and amd64.

ok kettenis@ deraadt@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE
# 1.15 06-Mar-2022 deraadt

oops, typo, spotted by Mikhail


# 1.14 05-Mar-2022 deraadt

Improve wording for trying S5 instead of S4


# 1.13 17-Feb-2022 deraadt

If S4 is not available, use S5 for the ACPI-transitions in hibernate support.
A bunch of servers work now.
Really close to a 3-line diff...
ok kettenis


# 1.12 17-Feb-2022 jsg

remove unused defines


# 1.11 17-Feb-2022 jsg

reduce includes
ok deraadt@


# 1.10 16-Feb-2022 deraadt

rev 1.4 was wrong to put potential IO operations after _GTS.
re-creating the original (2 weeks ago) order of last-minute-disk-parking
needs a different approach, hmm.


# 1.9 16-Feb-2022 deraadt

if the lids indicate we are not supposed to wakeup, return EAGAIN rather
than scheduling an acpi thread


# 1.8 16-Feb-2022 deraadt

change MD gosleep() and sleep_finish() to return int, the MI code will be
able to react to this suitably.


# 1.7 15-Feb-2022 deraadt

Since acpitoshiba brightness button processing no longer plays games
with AML parsing outside the acpi thread, the locking-release dance
around wsdisplay_{suspend,resume} can be removed
ok kettenis


# 1.6 15-Feb-2022 deraadt

when the MI suspend code encounters problems, we need a way to
reset the MD state before bailing out. New MD function sleep_abort()
does that.


# 1.5 15-Feb-2022 deraadt

MI disable_lid_wakeups() is not needed, x86 systems can do this
in sleep_resume(), which seems sensible for other future systems also


# 1.4 15-Feb-2022 deraadt

The DVACT_POWERDOWN step was accidentally moved in relation to some MD
steps, so shuffle the MD steps to reinforce the order.


# 1.3 14-Feb-2022 kettenis

Make sure we call acpi_resume_cpu() with the right ACPI state. This was
accidentally broken with the reorganization of the suspend/resume code that
was committed a few days ago.

ok deraadt@


# 1.2 14-Feb-2022 deraadt

acpi_indicator() can take the softc*, instead of void*


# 1.1 09-Feb-2022 deraadt

Move x86-only stubs used by kern/subr_suspend.c into dev/acpi/acpi_x86.c
for sharing between i386 and amd64.
ok mlarkin kettenis


# 1.17 06-Jul-2023 deraadt

moving acpiioctl to a different file than acpiopen is not going to work
for ramdisks. noticed by anton.
this must be reconsidered.


# 1.16 05-Jul-2023 tobhe

Move acpiioctl to acpi_x86.c, it is only used up on i386 and amd64.

ok kettenis@ deraadt@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE
# 1.15 06-Mar-2022 deraadt

oops, typo, spotted by Mikhail


# 1.14 05-Mar-2022 deraadt

Improve wording for trying S5 instead of S4


# 1.13 17-Feb-2022 deraadt

If S4 is not available, use S5 for the ACPI-transitions in hibernate support.
A bunch of servers work now.
Really close to a 3-line diff...
ok kettenis


# 1.12 17-Feb-2022 jsg

remove unused defines


# 1.11 17-Feb-2022 jsg

reduce includes
ok deraadt@


# 1.10 16-Feb-2022 deraadt

rev 1.4 was wrong to put potential IO operations after _GTS.
re-creating the original (2 weeks ago) order of last-minute-disk-parking
needs a different approach, hmm.


# 1.9 16-Feb-2022 deraadt

if the lids indicate we are not supposed to wakeup, return EAGAIN rather
than scheduling an acpi thread


# 1.8 16-Feb-2022 deraadt

change MD gosleep() and sleep_finish() to return int, the MI code will be
able to react to this suitably.


# 1.7 15-Feb-2022 deraadt

Since acpitoshiba brightness button processing no longer plays games
with AML parsing outside the acpi thread, the locking-release dance
around wsdisplay_{suspend,resume} can be removed
ok kettenis


# 1.6 15-Feb-2022 deraadt

when the MI suspend code encounters problems, we need a way to
reset the MD state before bailing out. New MD function sleep_abort()
does that.


# 1.5 15-Feb-2022 deraadt

MI disable_lid_wakeups() is not needed, x86 systems can do this
in sleep_resume(), which seems sensible for other future systems also


# 1.4 15-Feb-2022 deraadt

The DVACT_POWERDOWN step was accidentally moved in relation to some MD
steps, so shuffle the MD steps to reinforce the order.


# 1.3 14-Feb-2022 kettenis

Make sure we call acpi_resume_cpu() with the right ACPI state. This was
accidentally broken with the reorganization of the suspend/resume code that
was committed a few days ago.

ok deraadt@


# 1.2 14-Feb-2022 deraadt

acpi_indicator() can take the softc*, instead of void*


# 1.1 09-Feb-2022 deraadt

Move x86-only stubs used by kern/subr_suspend.c into dev/acpi/acpi_x86.c
for sharing between i386 and amd64.
ok mlarkin kettenis


# 1.15 06-Mar-2022 deraadt

oops, typo, spotted by Mikhail


# 1.14 05-Mar-2022 deraadt

Improve wording for trying S5 instead of S4


# 1.13 17-Feb-2022 deraadt

If S4 is not available, use S5 for the ACPI-transitions in hibernate support.
A bunch of servers work now.
Really close to a 3-line diff...
ok kettenis


# 1.12 17-Feb-2022 jsg

remove unused defines


# 1.11 17-Feb-2022 jsg

reduce includes
ok deraadt@


# 1.10 16-Feb-2022 deraadt

rev 1.4 was wrong to put potential IO operations after _GTS.
re-creating the original (2 weeks ago) order of last-minute-disk-parking
needs a different approach, hmm.


# 1.9 16-Feb-2022 deraadt

if the lids indicate we are not supposed to wakeup, return EAGAIN rather
than scheduling an acpi thread


# 1.8 16-Feb-2022 deraadt

change MD gosleep() and sleep_finish() to return int, the MI code will be
able to react to this suitably.


# 1.7 15-Feb-2022 deraadt

Since acpitoshiba brightness button processing no longer plays games
with AML parsing outside the acpi thread, the locking-release dance
around wsdisplay_{suspend,resume} can be removed
ok kettenis


# 1.6 15-Feb-2022 deraadt

when the MI suspend code encounters problems, we need a way to
reset the MD state before bailing out. New MD function sleep_abort()
does that.


# 1.5 15-Feb-2022 deraadt

MI disable_lid_wakeups() is not needed, x86 systems can do this
in sleep_resume(), which seems sensible for other future systems also


# 1.4 15-Feb-2022 deraadt

The DVACT_POWERDOWN step was accidentally moved in relation to some MD
steps, so shuffle the MD steps to reinforce the order.


# 1.3 14-Feb-2022 kettenis

Make sure we call acpi_resume_cpu() with the right ACPI state. This was
accidentally broken with the reorganization of the suspend/resume code that
was committed a few days ago.

ok deraadt@


# 1.2 14-Feb-2022 deraadt

acpi_indicator() can take the softc*, instead of void*


# 1.1 09-Feb-2022 deraadt

Move x86-only stubs used by kern/subr_suspend.c into dev/acpi/acpi_x86.c
for sharing between i386 and amd64.
ok mlarkin kettenis


# 1.15 06-Mar-2022 deraadt

oops, typo, spotted by Mikhail


# 1.14 05-Mar-2022 deraadt

Improve wording for trying S5 instead of S4


# 1.13 17-Feb-2022 deraadt

If S4 is not available, use S5 for the ACPI-transitions in hibernate support.
A bunch of servers work now.
Really close to a 3-line diff...
ok kettenis


# 1.12 17-Feb-2022 jsg

remove unused defines


# 1.11 17-Feb-2022 jsg

reduce includes
ok deraadt@


# 1.10 16-Feb-2022 deraadt

rev 1.4 was wrong to put potential IO operations after _GTS.
re-creating the original (2 weeks ago) order of last-minute-disk-parking
needs a different approach, hmm.


# 1.9 16-Feb-2022 deraadt

if the lids indicate we are not supposed to wakeup, return EAGAIN rather
than scheduling an acpi thread


# 1.8 16-Feb-2022 deraadt

change MD gosleep() and sleep_finish() to return int, the MI code will be
able to react to this suitably.


# 1.7 15-Feb-2022 deraadt

Since acpitoshiba brightness button processing no longer plays games
with AML parsing outside the acpi thread, the locking-release dance
around wsdisplay_{suspend,resume} can be removed
ok kettenis


# 1.6 15-Feb-2022 deraadt

when the MI suspend code encounters problems, we need a way to
reset the MD state before bailing out. New MD function sleep_abort()
does that.


# 1.5 15-Feb-2022 deraadt

MI disable_lid_wakeups() is not needed, x86 systems can do this
in sleep_resume(), which seems sensible for other future systems also


# 1.4 15-Feb-2022 deraadt

The DVACT_POWERDOWN step was accidentally moved in relation to some MD
steps, so shuffle the MD steps to reinforce the order.


# 1.3 14-Feb-2022 kettenis

Make sure we call acpi_resume_cpu() with the right ACPI state. This was
accidentally broken with the reorganization of the suspend/resume code that
was committed a few days ago.

ok deraadt@


# 1.2 14-Feb-2022 deraadt

acpi_indicator() can take the softc*, instead of void*


# 1.1 09-Feb-2022 deraadt

Move x86-only stubs used by kern/subr_suspend.c into dev/acpi/acpi_x86.c
for sharing between i386 and amd64.
ok mlarkin kettenis


# 1.13 17-Feb-2022 deraadt

If S4 is not available, use S5 for the ACPI-transitions in hibernate support.
A bunch of servers work now.
Really close to a 3-line diff...
ok kettenis


# 1.12 17-Feb-2022 jsg

remove unused defines


# 1.11 17-Feb-2022 jsg

reduce includes
ok deraadt@


# 1.10 16-Feb-2022 deraadt

rev 1.4 was wrong to put potential IO operations after _GTS.
re-creating the original (2 weeks ago) order of last-minute-disk-parking
needs a different approach, hmm.


# 1.9 16-Feb-2022 deraadt

if the lids indicate we are not supposed to wakeup, return EAGAIN rather
than scheduling an acpi thread


# 1.8 16-Feb-2022 deraadt

change MD gosleep() and sleep_finish() to return int, the MI code will be
able to react to this suitably.


# 1.7 15-Feb-2022 deraadt

Since acpitoshiba brightness button processing no longer plays games
with AML parsing outside the acpi thread, the locking-release dance
around wsdisplay_{suspend,resume} can be removed
ok kettenis


# 1.6 15-Feb-2022 deraadt

when the MI suspend code encounters problems, we need a way to
reset the MD state before bailing out. New MD function sleep_abort()
does that.


# 1.5 15-Feb-2022 deraadt

MI disable_lid_wakeups() is not needed, x86 systems can do this
in sleep_resume(), which seems sensible for other future systems also


# 1.4 15-Feb-2022 deraadt

The DVACT_POWERDOWN step was accidentally moved in relation to some MD
steps, so shuffle the MD steps to reinforce the order.


# 1.3 14-Feb-2022 kettenis

Make sure we call acpi_resume_cpu() with the right ACPI state. This was
accidentally broken with the reorganization of the suspend/resume code that
was committed a few days ago.

ok deraadt@


# 1.2 14-Feb-2022 deraadt

acpi_indicator() can take the softc*, instead of void*


# 1.1 09-Feb-2022 deraadt

Move x86-only stubs used by kern/subr_suspend.c into dev/acpi/acpi_x86.c
for sharing between i386 and amd64.
ok mlarkin kettenis


# 1.12 17-Feb-2022 jsg

remove unused defines


# 1.11 17-Feb-2022 jsg

reduce includes
ok deraadt@


# 1.10 16-Feb-2022 deraadt

rev 1.4 was wrong to put potential IO operations after _GTS.
re-creating the original (2 weeks ago) order of last-minute-disk-parking
needs a different approach, hmm.


# 1.9 16-Feb-2022 deraadt

if the lids indicate we are not supposed to wakeup, return EAGAIN rather
than scheduling an acpi thread


# 1.8 16-Feb-2022 deraadt

change MD gosleep() and sleep_finish() to return int, the MI code will be
able to react to this suitably.


# 1.7 15-Feb-2022 deraadt

Since acpitoshiba brightness button processing no longer plays games
with AML parsing outside the acpi thread, the locking-release dance
around wsdisplay_{suspend,resume} can be removed
ok kettenis


# 1.6 15-Feb-2022 deraadt

when the MI suspend code encounters problems, we need a way to
reset the MD state before bailing out. New MD function sleep_abort()
does that.


# 1.5 15-Feb-2022 deraadt

MI disable_lid_wakeups() is not needed, x86 systems can do this
in sleep_resume(), which seems sensible for other future systems also


# 1.4 15-Feb-2022 deraadt

The DVACT_POWERDOWN step was accidentally moved in relation to some MD
steps, so shuffle the MD steps to reinforce the order.


# 1.3 14-Feb-2022 kettenis

Make sure we call acpi_resume_cpu() with the right ACPI state. This was
accidentally broken with the reorganization of the suspend/resume code that
was committed a few days ago.

ok deraadt@


# 1.2 14-Feb-2022 deraadt

acpi_indicator() can take the softc*, instead of void*


# 1.1 09-Feb-2022 deraadt

Move x86-only stubs used by kern/subr_suspend.c into dev/acpi/acpi_x86.c
for sharing between i386 and amd64.
ok mlarkin kettenis


# 1.9 16-Feb-2022 deraadt

if the lids indicate we are not supposed to wakeup, return EAGAIN rather
than scheduling an acpi thread


# 1.8 16-Feb-2022 deraadt

change MD gosleep() and sleep_finish() to return int, the MI code will be
able to react to this suitably.


# 1.7 15-Feb-2022 deraadt

Since acpitoshiba brightness button processing no longer plays games
with AML parsing outside the acpi thread, the locking-release dance
around wsdisplay_{suspend,resume} can be removed
ok kettenis


# 1.6 15-Feb-2022 deraadt

when the MI suspend code encounters problems, we need a way to
reset the MD state before bailing out. New MD function sleep_abort()
does that.


# 1.5 15-Feb-2022 deraadt

MI disable_lid_wakeups() is not needed, x86 systems can do this
in sleep_resume(), which seems sensible for other future systems also


# 1.4 15-Feb-2022 deraadt

The DVACT_POWERDOWN step was accidentally moved in relation to some MD
steps, so shuffle the MD steps to reinforce the order.


# 1.3 14-Feb-2022 kettenis

Make sure we call acpi_resume_cpu() with the right ACPI state. This was
accidentally broken with the reorganization of the suspend/resume code that
was committed a few days ago.

ok deraadt@


# 1.2 14-Feb-2022 deraadt

acpi_indicator() can take the softc*, instead of void*


# 1.1 09-Feb-2022 deraadt

Move x86-only stubs used by kern/subr_suspend.c into dev/acpi/acpi_x86.c
for sharing between i386 and amd64.
ok mlarkin kettenis


# 1.5 15-Feb-2022 deraadt

MI disable_lid_wakeups() is not needed, x86 systems can do this
in sleep_resume(), which seems sensible for other future systems also


# 1.4 15-Feb-2022 deraadt

The DVACT_POWERDOWN step was accidentally moved in relation to some MD
steps, so shuffle the MD steps to reinforce the order.


# 1.3 14-Feb-2022 kettenis

Make sure we call acpi_resume_cpu() with the right ACPI state. This was
accidentally broken with the reorganization of the suspend/resume code that
was committed a few days ago.

ok deraadt@


# 1.2 14-Feb-2022 deraadt

acpi_indicator() can take the softc*, instead of void*


# 1.1 09-Feb-2022 deraadt

Move x86-only stubs used by kern/subr_suspend.c into dev/acpi/acpi_x86.c
for sharing between i386 and amd64.
ok mlarkin kettenis


# 1.1 09-Feb-2022 deraadt

Move x86-only stubs used by kern/subr_suspend.c into dev/acpi/acpi_x86.c
for sharing between i386 and amd64.
ok mlarkin kettenis