Messages in this thread | | | From | Viresh Kumar <> | Subject | [PATCH V2 0/3] OPP: Simplify required-opp handling | Date | Mon, 30 Oct 2023 15:54:14 +0530 |
| |
Hello,
I wasn't able to test this locally (despite trying to hack it around) and need help from someone who is `virt_devs` field of `struct dev_pm_opp_config`.
Pushed here:
git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm.git opp/required-opps
-------------------------8<-------------------------
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.
V1->V2: - Support opp-level 0, drop vote i.e.. - Fix OPP pointer while calling dev_pm_opp_set_opp() recursively. - Minor checks and fixes. - Add Reviewed-by from Ulf.
-- Viresh
Viresh Kumar (3): OPP: Level zero is valid OPP: Use _set_opp_level() for single genpd case OPP: Call dev_pm_opp_set_opp() for required OPPs
drivers/opp/core.c | 176 ++++++++++++++++++++++------------------- drivers/opp/of.c | 48 ++++++++--- drivers/opp/opp.h | 8 +- include/linux/pm_opp.h | 12 ++- 4 files changed, 145 insertions(+), 99 deletions(-)
-- 2.31.1.272.g89b43f80a514
| |