public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC v1 0/8] acpi/x86: s2idle: Introduce and implement runtime standby ABI for ACPI s0ix platforms
@ 2025-12-26 10:26 Antheas Kapenekakis
  2025-12-26 10:26 ` [RFC v1 1/8] Documentation: PM: Add documentation for Runtime Standby States Antheas Kapenekakis
                   ` (10 more replies)
  0 siblings, 11 replies; 41+ messages in thread
From: Antheas Kapenekakis @ 2025-12-26 10:26 UTC (permalink / raw)
  To: dmitry.osipenko
  Cc: bob.beckett, bookeldor, hadess, jaap, kernel, lennart, linux-acpi,
	linux-kernel, lkml, mccann, rafael, richard, sebastian.reichel,
	superm1, systemd-devel, xaver.hugl

This series introduces a new runtime standby ABI to allow firing Modern
Standby firmware notifications that modify hardware appearance from userspace
without suspending the kernel. This allows userspace to set the inactivity
state of the device so that it looks like it is asleep (e.g., flashing the
power button) while still being able to perform basic computations.

It is a more fleshed out implementation of [1] and a rewritten version of [2]

The first part of this series implements the plumbing that moves the existing
DSMs from being called at the end of the suspend sequence to the beginning,
where they are called through a transition function. Then, the last patch
exposes this transition function through /sys/power/standby to allow userspace
to interact with it.

In this way, the core series can be tested while not exposing the new ABI
to userspace until ensured to be stable.

For more information, see the first patch in this series with documentation.

Because this series is a major rewrite, I have not tested it much and there
might be minor logic issues. In addition, due to confusion with the
"screen off" terminology, I opted to rename the "screen off" state to
"inactive". This way, it is applicable to devices that do not have screens.

To test this series, it is recommended to enable logs with:

sudo bash -c "cat > /sys/kernel/debug/dynamic_debug/control" << EOF
file drivers/acpi/x86/s2idle.c +p
file kernel/power/suspend.c +p
EOF
echo 1 | sudo tee /sys/power/pm_debug_messages

Here are some commands afterwards:

echo "active" | sudo tee /sys/power/standby; cat /sys/power/standby
echo "inactive" | sudo tee /sys/power/standby; cat /sys/power/standby
echo "sleep" | sudo tee /sys/power/standby; cat /sys/power/standby

Merry Christmas

PS. this series is made on v6.19-rc2, but you should probably test it on 6.18.
My Wifi does not work, and neither does booting with a dock connected. Do not
test it on an ROG Ally, let's get the basics first right :) The shims in
asus-wmi/hid-asus should be removed once this series is merged otherwise they
will conflict.

[1] https://lore.kernel.org/lkml/20251202043416.2310677-1-dmitry.osipenko@collabora.com/
[2] https://lore.kernel.org/all/20241121172239.119590-1-lkml@antheas.dev/

Antheas Kapenekakis (8):
  Documentation: PM: Add documentation for Runtime Standby States
  acpi/x86: s2idle: Rename LPS0 constants so they mirror their function
  acpi/x86: s2idle: add runtime standby transition function
  acpi/x86: s2idle: add support for querying runtime standby state
    support
  acpi/x86: s2idle: move DSM notifications to do_notification callback
  acpi/x86: s2idle: implement turn on display DSM as resume notification
  PM: hibernate: Enter s2idle sleep state before hibernation
  PM: standby: Add sysfs attribute for runtime standby transitions

 Documentation/ABI/testing/sysfs-power         |  20 ++
 .../admin-guide/pm/standby-states.rst         | 100 ++++++++++
 Documentation/admin-guide/pm/system-wide.rst  |   1 +
 drivers/acpi/x86/s2idle.c                     | 176 ++++++++++++------
 include/linux/suspend.h                       |  26 +++
 kernel/power/hibernate.c                      |  29 ++-
 kernel/power/main.c                           |  84 +++++++++
 kernel/power/power.h                          |   1 +
 kernel/power/suspend.c                        | 153 +++++++++++++++
 9 files changed, 532 insertions(+), 58 deletions(-)
 create mode 100644 Documentation/admin-guide/pm/standby-states.rst


base-commit: 9448598b22c50c8a5bb77a9103e2d49f134c9578
-- 
2.52.0



^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2026-03-23  9:27 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-26 10:26 [RFC v1 0/8] acpi/x86: s2idle: Introduce and implement runtime standby ABI for ACPI s0ix platforms Antheas Kapenekakis
2025-12-26 10:26 ` [RFC v1 1/8] Documentation: PM: Add documentation for Runtime Standby States Antheas Kapenekakis
2026-03-13 20:07   ` Rafael J. Wysocki
2026-03-16 19:54     ` Antheas Kapenekakis
2025-12-26 10:26 ` [RFC v1 2/8] acpi/x86: s2idle: Rename LPS0 constants so they mirror their function Antheas Kapenekakis
2026-03-13 20:12   ` Rafael J. Wysocki
2026-03-16 20:01     ` Antheas Kapenekakis
2025-12-26 10:26 ` [RFC v1 3/8] acpi/x86: s2idle: add runtime standby transition function Antheas Kapenekakis
2026-03-13 20:29   ` Rafael J. Wysocki
2026-03-16 20:06     ` Antheas Kapenekakis
2025-12-26 10:26 ` [RFC v1 4/8] acpi/x86: s2idle: add support for querying runtime standby state support Antheas Kapenekakis
2025-12-26 10:26 ` [RFC v1 5/8] acpi/x86: s2idle: move DSM notifications to do_notification callback Antheas Kapenekakis
2025-12-26 10:26 ` [RFC v1 6/8] acpi/x86: s2idle: implement turn on display DSM as resume notification Antheas Kapenekakis
2025-12-26 10:26 ` [RFC v1 7/8] PM: hibernate: Enter s2idle sleep state before hibernation Antheas Kapenekakis
2026-03-13 20:33   ` Rafael J. Wysocki
2026-03-16 20:09     ` Antheas Kapenekakis
2025-12-26 10:26 ` [RFC v1 8/8] PM: standby: Add sysfs attribute for runtime standby transitions Antheas Kapenekakis
2026-01-12 20:33 ` [RFC v1 0/8] acpi/x86: s2idle: Introduce and implement runtime standby ABI for ACPI s0ix platforms Antheas Kapenekakis
2026-01-13  9:48   ` Dmitry Osipenko
2026-01-13 10:11     ` Antheas Kapenekakis
2026-01-14 23:07       ` Dmitry Osipenko
2026-01-15  7:49         ` Antheas Kapenekakis
2026-03-16 19:02           ` Dmitry Osipenko
2026-03-16 19:33             ` Antheas Kapenekakis
2026-03-16 19:36               ` Antheas Kapenekakis
2026-03-17 11:04                 ` Dmitry Osipenko
2026-02-27 14:59 ` Antheas Kapenekakis
2026-02-27 18:42   ` Rafael J. Wysocki
2026-03-13 19:36 ` Rafael J. Wysocki
2026-03-16 19:52   ` Antheas Kapenekakis
2026-03-17 11:56     ` Dmitry Osipenko
2026-03-17 12:09       ` Rafael J. Wysocki
2026-03-17 15:13         ` Mario Limonciello
2026-03-19 12:35           ` Antheas Kapenekakis
2026-03-20 20:41             ` Mario Limonciello (AMD) (kernel.org)
2026-03-21 13:46               ` Antheas Kapenekakis
2026-03-21 13:52                 ` Antheas Kapenekakis
2026-03-21 18:43                   ` Mario Limonciello
2026-03-21 22:33                     ` Antheas Kapenekakis
2026-03-23  4:36                       ` Mario Limonciello
2026-03-23  9:26                         ` Antheas Kapenekakis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox