Make sure we don't suspend if we have no way to wake up the machine.
authorkettenis <kettenis@openbsd.org>
Sat, 3 Sep 2022 18:05:10 +0000 (18:05 +0000)
committerkettenis <kettenis@openbsd.org>
Sat, 3 Sep 2022 18:05:10 +0000 (18:05 +0000)
commit17b371d9047d2f82419a508017ab859f6a0eb3e8
tree16b062525930896f6d4aea4fe3aeee0b0433cbb4
parent7a1f068732b3740652cd0d3a6196ef846a4040f5
Make sure we don't suspend if we have no way to wake up the machine.
The idea is that device drivers that can wake up the machine register
themselves by calling device_register_wakeup().  To prevent regressions
on amd64, we let acpi(4) register itself as a wakeup device if the AML
for the machine defines wakeup devices.  This may be refined in the
future.

This diff will prevent people from suspending their arm64 SBCs without
having a way to wake them up.  For now the only driver that registers
itself is axppmic(4), which means that at this moment only SBCs with
an allwinner A64 or H5 SoC will actually support suspend/resume.

ok mlarkin@, deraadt@
sys/dev/acpi/acpi.c
sys/dev/fdt/axppmic.c
sys/kern/subr_suspend.c
sys/sys/device.h