=== Suspend/Resume Improvements

Links: +
link:https://obiw.ac/s0ix/[Blog] URL: link:https://obiw.ac/s0ix/[] +
link:https://youtu.be/RCjPc4X2Edc[BSDCan talk on s2idle/S0ix] URL: link:https://youtu.be/RCjPc4X2Edc[] +
link:https://github.com/obiwac/freebsd-s0ix/pull/15[Working branch] URL: link:https://github.com/obiwac/freebsd-s0ix/pull/15[]

Contact: obiwac <obiwac@FreeBSD.org>

Suspend-to-idle and support for S0ix sleep is in the process of being added to FreeBSD.

This will allow modern Intel and AMD laptops, some of which do not support ACPI S3 sleep, to enter low power states to increase battery life.

Mostly, the status is the same as the previous quarter -- work is still ongoing on narrowing down the NVMe resume issues and fixing up the D-state issues.

The generic power management interface has been committed and man:zzz[8] has been rewritten to make use of it.
You are now expected to use the `kern.power.supported_stype` sysctl to list supported generic sleep types and set the `kern.power.suspend` sysctl to the sleep type you would like man:zzz[8] to use.

A bunch of small fixes and improvements were made to the acpi_spmc driver.

Generic USB4 NHI support has also been committed.
The only thing left to commit for the USB4 support required for S0i3 entry is the suspend routine itself.
The man:thunderbolt[4] manpage has been updated to be clearer on the fact that this is only intended to support S0i3 entry.

A manpage has been written for man:amdsmu[4] to better explain how to diagnose S0i3 entry.

Sponsor: The FreeBSD Foundation
