cpuidle: psci: Prevent domain idlestates until consumers are ready
authorUlf Hansson <ulf.hansson@linaro.org>
Tue, 7 Jul 2020 12:58:04 +0000 (14:58 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 29 Jul 2020 16:38:30 +0000 (18:38 +0200)
commit81f94ddfeceddb3b8ffa6cfe5ddd3b896711d9ad
tree304c9143d9580d5bf54c3942eb7a3e28c9124096
parentee7c34caac3892af08f9c4c91b834d2cb2871eb0
cpuidle: psci: Prevent domain idlestates until consumers are ready

Depending on the SoC/platform, additional devices may be part of the PSCI
PM domain topology. This is the case with 'qcom,rpmh-rsc' device, for
example, even if this is not yet visible in the corresponding DTS-files.

Without going into too much details, a device like the 'qcom,rpmh-rsc' may
have HW constraints that needs to be obeyed to, before a domain idlestate
can be picked.

Therefore, let's implement the ->sync_state() callback to receive a
notification when all consumers of the PSCI PM domain providers have been
attached/probed to it. In this way, we can make sure all constraints from
all relevant devices, are taken into account before allowing a domain
idlestate to be picked.

Acked-by: Saravana Kannan <saravanak@google.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpuidle/cpuidle-psci-domain.c