PM / Domains: Add support for CPU devices to genpd
authorUlf Hansson <ulf.hansson@linaro.org>
Wed, 27 Mar 2019 14:35:46 +0000 (15:35 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 9 Apr 2019 22:32:34 +0000 (00:32 +0200)
commiteb594b7325f61835555140922a4cb715264a325c
tree4dabc8d09d647ceaf08d084137f586b1d2140a72
parent49a27e279052cf71ba931a26b00194ff46510480
PM / Domains: Add support for CPU devices to genpd

To enable a CPU device to be attached to a PM domain managed by genpd,
make a few changes to it for convenience.

To be able to quickly find out what CPUs are attached to a genpd,
which typically becomes useful from a genpd governor as subsequent
changes are about to show, add a cpumask to struct generic_pm_domain
to be updated when a CPU device gets attached to the genpd containing
that cpumask. Also, propagate the cpumask changes upwards in the
domain hierarchy to the master PM domains. This way, the cpumask for
a genpd hierarchically reflects all CPUs attached to the topology
below it.

Finally, make this an opt-in feature, to avoid having to manage CPUs
and the cpumask for a genpd that don't need it. To that end, add
a new genpd configuration bit, GENPD_FLAG_CPU_DOMAIN.

Co-developed-by: Lina Iyer <lina.iyer@linaro.org>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
[ rjw: Changelog ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/base/power/domain.c
include/linux/pm_domain.h