PM: runtime: Document that force_suspend() is incompatible with SMART_SUSPEND
authorRichard Fitzgerald <rf@opensource.cirrus.com>
Tue, 13 Dec 2022 15:54:48 +0000 (15:54 +0000)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 13 Jan 2023 19:53:44 +0000 (20:53 +0100)
commit450316dc4f41e857c928dfbcc495c3810d4b1928
tree8c5c920e2389a0920c6dc1f0ac2f068e8cb34e17
parentb7bfaa761d760e72a969d116517eaa12e404c262
PM: runtime: Document that force_suspend() is incompatible with SMART_SUSPEND

pm_runtime_force_suspend() cannot be used with DPM_FLAG_SMART_SUSPEND, so
note this in the kerneldoc.

If DPM_FLAG_SMART_SUSPEND is set and the PM core cannot skip system resume
it will call pm_runtime_active() on the driver. This can lead to an
inconsistent state where:

  pm_runtime_force_suspend() called ->runtime_suspend

but

  device_resume_noirq() called pm_runtime_set_active()

This leaves the driver actually suspended but marked as active.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/base/power/runtime.c