linux-next/drivers/opp
Viresh Kumar e37440e7e2 OPP: Call dev_pm_opp_set_opp() for required OPPs
Configuring the required OPP was never properly implemented, we just
took an exception for genpds and configured them directly, while leaving
out all other required OPP types.

Now that a standard call to dev_pm_opp_set_opp() takes care of
configuring the opp->level too, the special handling for genpds can be
avoided by simply calling dev_pm_opp_set_opp() for the required OPPs,
which shall eventually configure the corresponding level for genpds.

This also makes it possible for us to configure other type of required
OPPs (no concrete users yet though), via the same path. This is how
other frameworks take care of parent nodes, like clock, regulators, etc,
where we recursively call the same helper.

In order to call dev_pm_opp_set_opp() for the virtual genpd devices,
they must share the OPP table of the genpd. Call _add_opp_dev() for them
to get that done.

This commit also extends the struct dev_pm_opp_config to pass required
devices, for non-genpd cases, which can be used to call
dev_pm_opp_set_opp() for the non-genpd required devices.

Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Tested-by: Stephan Gerhold <stephan.gerhold@kernkonzept.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2023-11-28 16:03:19 +05:30
..
core.c OPP: Call dev_pm_opp_set_opp() for required OPPs 2023-11-28 16:03:19 +05:30
cpu.c OPP: Fix argument name in doc comment 2023-08-18 10:55:49 +05:30
debugfs.c OPP: debugfs: Fix warning with W=1 builds 2023-10-06 12:37:34 +05:30
Kconfig drivers/opp: Remove "select SRCU" 2023-01-05 11:47:21 +05:30
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
of.c OPP: Call dev_pm_opp_set_opp() for required OPPs 2023-11-28 16:03:19 +05:30
opp.h OPP: Call dev_pm_opp_set_opp() for required OPPs 2023-11-28 16:03:19 +05:30
ti-opp-supply.c opp: ti: Use device_get_match_data() 2023-11-23 11:28:46 +05:30