On Fri, Jul 11, 2025 at 3:21 PM Tudor Ambarus <tudor.ambarus@xxxxxxxxxx> wrote: > > > > On 7/9/25 1:31 PM, Tudor Ambarus wrote: > > 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@xxxxxxxxxx> > > --- > > Dealing with the pixel6 downstream drivers to cope with the changes from > > https://lore.kernel.org/linux-pm/10629535.nUPlyArG6x@xxxxxxxxxxxxx/. > > > > Similar to what people already reported it seems pixel6 lacks proper > > device links dependencies downstream causing i2c and spi client drivers > > to fail to suspend. Add kernel param to disable async suspend/resume. > > --- > > Changes in v3: > > - update documentation with "pm_async=" and "Format: off" (Randy) > > - reword documentation to make it clear "on" isn't a selectable option > > for pm_async because it's the default behavior. > > - Link to v2: https://lore.kernel.org/r/20250708-pm-async-off-v2-1-7fada54f01c0@xxxxxxxxxx > > > > Changes in v2: > > - update the documentation and the commit message to describe that the > > "pm_async" kernel parameter provides a way to change the initial value > > of the existing /sys/power/pm_async sysfs knob. > > - Link to v1: https://lore.kernel.org/r/20250708-pm-async-off-v1-1-1b200cc03d9c@xxxxxxxxxx > > --- > > Documentation/admin-guide/kernel-parameters.txt | 12 ++++++++++++ > > kernel/power/main.c | 9 +++++++++ > > 2 files changed, 21 insertions(+) > > > > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt > > index f1f2c0874da9ddfc95058c464fdf5dabaf0de713..06beacf208de3242a3b4bb2413ab6cd3e0083f15 100644 > > --- a/Documentation/admin-guide/kernel-parameters.txt > > +++ b/Documentation/admin-guide/kernel-parameters.txt > > @@ -5000,6 +5000,18 @@ > > that number, otherwise (e.g., 'pmu_override=on'), MMCR1 > > remains 0. > > > > + pm_async= [PM] > > + Format: off > > + This parameter sets the initial value of the > > + /sys/power/pm_async sysfs knob at boot time. > > + If set to "off", disables asynchronous suspend and > > + resume of devices during system-wide power transitions. > > + This can be useful on platforms where device > > + dependencies are not well-defined, or for debugging > > + power management issues. Asynchronous operations are > > + enabled by default. > > + > > + > > I just noticed an extra new line here, that checkpatch didn't catch. > Please let me know if I have to resubmit, or it can be amended > when/if applied. No worries, I've already applied the patch. The extra new line can be removed separately. Thanks!