]> 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)
commit0f5b5f44b9e598a95329548b044f7f775760186d
tree168d62961c1ce769ecf26294a3a6d4dc6d0e3536
parentb441a64934057dd4e02ff135b2e1b459346a652a
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