]> git.baikalelectronics.ru Git - kernel.git/commit
cpuidle: PSCI: Improve support for suspend-to-RAM for PSCI OSI mode
authorUlf Hansson <ulf.hansson@linaro.org>
Fri, 1 Apr 2022 14:11:24 +0000 (16:11 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 19 Apr 2022 15:24:34 +0000 (17:24 +0200)
commit6971201c597219d5bee140d13d3dd95b1bf07414
tree168d62961c1ce769ecf26294a3a6d4dc6d0e3536
parent44a25eea60bf705e5e7736fe29b34557a4121f77
cpuidle: PSCI: Improve support for suspend-to-RAM for PSCI OSI mode

When PSCI OSI mode is supported the syscore flag is set for the CPU devices
that becomes attached to their PM domains (genpds). In the suspend-to-idle
case, we call dev_pm_genpd_suspend|resume() to allow genpd to properly
manage the power-off/on operations (pick an idlestate and manage the on/off
notifications).

For suspend-to-ram, dev_pm_genpd_suspend|resume() is currently not being
called, which causes a problem that the genpd on/off notifiers do not get
sent as expected. This prevents the platform-specific operations from being
executed, typically needed just before/after the boot CPU is being turned
off/on.

To deal with this problem, let's register a syscore ops for cpuidle-psci
when PSCI OSI mode is being used and call dev_pm_genpd_suspend|resume()
from them. In this way, genpd regains control of the PM domain topology and
then sends the on/off notifications when it's appropriate.

Reported-by: Maulik Shah <quic_mkshah@quicinc.com>
Suggested-by: Maulik Shah <quic_mkshah@quicinc.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Tested-by: Maulik Shah <quic_mkshah@quicinc.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpuidle/cpuidle-psci.c