I have tested this on the Framework 13 AMD Ryzen 7040 series (Phoenix). Because of spurious interrupts, it exits the suspended-to-idle state every minute or so even with the SPMC notifications and AMD SMU hints. A follow up patch will be needed to implement a suspend-to-idle loop, which immediately idles the CPU again if the interrupt reason was not a wake event.
With this patch:
```
% sysctl hw.acpi.supported_sleep_state
hw.acpi.supported_sleep_state: S4 S5 S0i
```
To test this out, you can set a press of the power button to suspend to idle e.g.:
```
% sysctl hw.acpi.power_button_state=S0i
hw.acpi.power_button_state: S5 -> S0i
```