acpi_spmc: Add system power management controller driver

Add SPMC (system power management controller) driver as acpi_spmc. This
is the device which provides the LPI device D-state constraints and
allows for OSPM to send S0ix/modern standby entry/exit notifications.
This supports the original Intel DSM
(https://uefi.org/sites/default/files/resources/Intel_ACPI_Low_Power_S0_Idle.pdf,
untested), the AMD DSM (tested), and the Microsoft DSM (tested).

Before entry, acpi_spmc_check_constraints is called to notify of any
violated power constraints. This will use acpi_pwr_get_state to get
current device D-states when that gets added back.

Reviewed by:	olce
Tested by:	jkim, Oleksandr Kryvulia, Matthias Lanter
Approved by:	olce
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D48387
This commit is contained in:
Aymeric Wibo
2025-06-14 17:30:44 +02:00
parent a11d132f6c
commit c5daa5a4c3
4 changed files with 623 additions and 1 deletions
+3 -1
View File
@@ -486,10 +486,12 @@ Embedded controller driver
Fan driver
.It Li ACPI_OEM
Platform-specific driver for hotkeys, LED, etc.
.It Li ACPI_POWER
.It Li ACPI_POWERRES
Power resource driver
.It Li ACPI_PROCESSOR
CPU driver
.It Li ACPI_SPMC
System power management controller driver
.It Li ACPI_THERMAL
Thermal zone driver
.It Li ACPI_TIMER