linux/drivers/cpuidle
Ulf Hansson 81f94ddfec 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>
2020-07-29 18:38:30 +02:00
..
governors cpuidle: teo: Fix intervals[] array indexing bug 2020-01-13 11:14:58 +01:00
coupled.c cpuidle: coupled: fix warnings when compiling with W=1 2020-01-23 00:30:28 +01:00
cpuidle-arm.c thermal: cpuidle: Register cpuidle cooling device 2020-05-19 12:58:07 +02:00
cpuidle-at91.c
cpuidle-big_little.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cpuidle-calxeda.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
cpuidle-clps711x.c cpuidle: clps711x: convert to devm_platform_ioremap_resource() 2019-12-20 10:04:27 +01:00
cpuidle-cps.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cpuidle-exynos.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cpuidle-haltpoll.c cpuidle-haltpoll: Fix small typo 2020-04-08 14:35:45 +02:00
cpuidle-kirkwood.c cpuidle: kirkwood: convert to devm_platform_ioremap_resource() 2019-12-20 10:05:44 +01:00
cpuidle-mvebu-v7.c
cpuidle-powernv.c cpuidle: Consolidate disabled state checks 2019-11-06 13:19:56 +01:00
cpuidle-psci-domain.c cpuidle: psci: Prevent domain idlestates until consumers are ready 2020-07-29 18:38:30 +02:00
cpuidle-psci.c cpuidle: psci: Fix error path via converting to a platform driver 2020-07-29 18:38:30 +02:00
cpuidle-psci.h cpuidle: psci: Fix error path via converting to a platform driver 2020-07-29 18:38:30 +02:00
cpuidle-pseries.c powerpc/idle: Store PURR snapshot in a per-cpu global variable 2020-04-30 12:35:26 +10:00
cpuidle-qcom-spm.c cpuidle: Convert Qualcomm SPM driver to a generic CPUidle driver 2020-05-26 10:46:01 +02:00
cpuidle-tegra.c cpuidle: tegra: Support CPU cluster power-down state on Tegra30 2020-05-06 18:42:55 +02:00
cpuidle-ux500.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cpuidle-zynq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
cpuidle.c cpuidle: Rearrange s2idle-specific idle state entry code 2020-06-25 13:52:53 +02:00
cpuidle.h cpuidle: allow governor switch on cpuidle_register_driver() 2019-09-11 17:36:30 +02:00
driver.c cpuidle: Drop unused cpuidle_driver_ref/unref() functions 2020-01-09 16:47:22 +01:00
dt_idle_states.c cpuidle: dt: Support hierarchical CPU idle states 2020-01-02 16:50:08 +01:00
dt_idle_states.h
governor.c cpuidle: Call cpu_latency_qos_limit() instead of pm_qos_request() 2020-02-13 11:26:57 +01:00
Kconfig cpuidle: Fix Kconfig indentation 2019-11-29 11:47:35 +01:00
Kconfig.arm cpuidle: psci: Split into two separate build objects 2020-07-29 18:38:30 +02:00
Kconfig.mips treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Kconfig.powerpc treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile cpuidle: psci: Split into two separate build objects 2020-07-29 18:38:30 +02:00
poll_state.c cpuidle: Drop disabled field from struct cpuidle_state 2019-11-29 11:48:39 +01:00
sysfs.c cpuidle: Fix three reference count leaks 2020-05-29 18:07:18 +02:00