[PATCH v3 0/5] Improvements to S5 power consumption

Mario Limonciello
2025-06-09T02:46:36Z

A variety of issues both in function and in power consumption have been
raised as a result of devices not being put into a low power state when
the system is powered off.

There have been some localized changes[1] to PCI core to help these issues,
but they have had various downsides.

This series instead tries to use the S4 flow when the system is being
powered off. This lines up the behavior with what other operating systems
do as well. If for some reason that fails or is not supported, unwind and
do the previous S5 flow that will wake all devices and run their shutdown()
callbacks.

Previous submissions [1]:
Link: https://lore.kernel.org/linux-pm/CAJZ5v0hrKEJa8Ad7iiAvQ3d_0ysVhzZcXSYc5kkL=6vtseF+bg@mail.gmail.com/T/#m91e4eae868a7405ae579e89b135085f4906225d2
Link: https://lore.kernel.org/linux-pci/20250506041934.1409302-1-superm1@kernel.org/
Link: https://lore.kernel.org/linux-pci/20231213182656.6165-1-mario.limonciello@amd.com/ (v1)
Link: https://lore.kernel.org/linux-pm/20250514193406.3998101-1-superm1@kernel.org/ (v2)

Mario Limonciello (5):
PM: Use hibernate flows for system power off
PCI: Put PCIe ports with downstream devices into D3 at hibernate
drm/amd: Avoid evicting resources at S5
scsi: Add PM_EVENT_POWEROFF into suspend callbacks
usb: sl811-hcd: Add PM_EVENT_POWEROFF into suspend callbacks

drivers/base/power/main.c | 7 ++
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 +
drivers/pci/pci-driver.c | 92 ++++++++++++++--------
drivers/scsi/mesh.c | 1 +
drivers/scsi/stex.c | 1 +
drivers/usb/host/sl811-hcd.c | 1 +
include/linux/pm.h | 3 +
include/trace/events/power.h | 3 +-
kernel/reboot.c | 6 ++
9 files changed, 84 insertions(+), 34 deletions(-)

--
2.43.0