Hi, This series adds performance state propagation support in genpd core. The propagation happens from the sub-domains to their masters. More details can be found in the individual commit logs.
This is tested on hikey960 by faking power domains in such a way that the CPU devices have two power domains and both of them have the same master domain. The CPU device, as well as its power domains have "required-opps" property set and the performance requirement from the CPU eventually configures all the domains (2 sub-domains and 1 master). @Rajendra: Will it be possible for you to run some tests and tell me if some stuff is still missing as per Qcom requirements ? Based on opp/linux-next branch (which is 4.20-rc1 + multiple-power-domain-support-in-opp-core). -- viresh Viresh Kumar (4): OPP: Add dev_pm_opp_xlate_performance_state() helper PM / Domains: Save OPP table pointer in genpd PM / Domains: Factorize dev_pm_genpd_set_performance_state() PM / Domains: Propagate performance state updates drivers/base/power/domain.c | 204 +++++++++++++++++++++++++++--------- drivers/opp/core.c | 49 +++++++++ include/linux/pm_domain.h | 6 ++ include/linux/pm_opp.h | 7 ++ 4 files changed, 217 insertions(+), 49 deletions(-) -- 2.19.1.568.g152ad8e3369a