[PATCH v3 00/12] OPP API fixes and improvements

From: Dmitry Osipenko
Date: Sun Jan 17 2021 - 19:56:33 EST


This series fixes problems and adds features to OPP API that are required
for implementation of a power domain driver for NVIDIA Tegra SoCs.

It is a continuation of [1], where Viresh Kumar asked to factor OPP
patches into a separate series. I factored out the patches into this
series, addressed the previous review comments and re-based patches
on top of [2], which replaced some of my patches that added resource-managed

[1] https://patchwork.ozlabs.org/project/linux-tegra/list/?series=221130
[2] https://lore.kernel.org/linux-pm/20210101165507.19486-1-tiny.windzz@xxxxxxxxx/


v3: - Reordered patches by importance.

- Added locking to dev_pm_opp_set_voltage().

- Reworked "Fix adding OPP entries in a wrong order if rate is unavailable"
patch, like it was suggested by Viresh Kumar.

- Reworked "Support set_opp() customization without requiring to use
regulators" patch, like it was suggested by Viresh Kumar.

The opp_table->set_opp_data is now allocated by dev_pm_opp_register_set_opp_helper().

The set_opp_data is refcounted now and can be allocated by any other
OPP functions if this will become needed in the future for other OPP API

Dmitry Osipenko (12):
opp: Fix adding OPP entries in a wrong order if rate is unavailable
opp: Filter out OPPs based on availability of a required-OPP
opp: Correct debug message in _opp_add_static_v2()
opp: Add dev_pm_opp_sync_regulators()
opp: Add dev_pm_opp_set_voltage()
opp: Add dev_pm_opp_find_level_ceil()
opp: Add dev_pm_opp_get_required_pstate()
opp: Add devm_pm_opp_register_set_opp_helper
opp: Add devm_pm_opp_attach_genpd
opp: Support set_opp() customization without requiring to use
opp: Handle missing OPP table in dev_pm_opp_xlate_performance_state()
opp: Print OPP level in debug message of _opp_add_static_v2()

drivers/opp/core.c | 309 +++++++++++++++++++++++++++++++++++++++--
drivers/opp/of.c | 9 +-
include/linux/pm_opp.h | 49 +++++++
3 files changed, 349 insertions(+), 18 deletions(-)