PM: sleep: add kernel parameter to disable asynchronous suspend/resume
authorTudor Ambarus <tudor.ambarus@linaro.org>
Wed, 9 Jul 2025 12:31:16 +0000 (12:31 +0000)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 10 Jul 2025 12:40:07 +0000 (14:40 +0200)
commitf747cde5e71b1701a107c3a2e223e5b4a6cb4c52
treed5d72895ded0aaf8a7759f1f0a991dbcb78a43e9
parentf19dc0489ed52f527e9b198b86b0b807ebbfa4e5
PM: sleep: add kernel parameter to disable asynchronous suspend/resume

On some platforms, device dependencies are not properly represented by
device links, which can cause issues when asynchronous power management
is enabled. While it is possible to disable this via sysfs, doing so
at runtime can race with the first system suspend event.

This patch introduces a kernel command-line parameter, "pm_async", which
can be set to "off" to globally disable asynchronous suspend and resume
operations from early boot. It effectively provides a way to set the
initial value of the existing pm_async sysfs knob at boot time. This
offers a robust method to fall back to synchronous (sequential)
operation, which can stabilize platforms with problematic dependencies
and also serve as a useful debugging tool.

The default behavior remains unchanged (asynchronous enabled). To
disable it, boot the kernel with the "pm_async=off" parameter.

Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://patch.msgid.link/20250709-pm-async-off-v3-1-cb69a6fc8d04@linaro.org
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Documentation/admin-guide/kernel-parameters.txt
kernel/power/main.c