[PATCH 00/31] OPP: Add new configuration interface: dev_pm_opp_set_config()

From: Viresh Kumar
Date: Thu May 26 2022 - 07:43:34 EST


Hello,

We have too many configuration specific APIs currently, six of them already,
like dev_pm_opp_set_regulators(). This makes it complex/messy for both the OPP
core and its users to manage. There is also code redundancy in these API, in the
way they add/manage the OPP table specific stuff.

This patch series is an attempt to simplify these interfaces by adding a single
interface, dev_pm_opp_set_config(), which replaces all the existing ones. This
also migrates the users to the new API.

The first two patches help get the API in place, followed by patches to migrate
the end users. Once all the users are migrated, the last few patches remove the
now unused interfaces.

I have lightly tested this on Hikey960 for now and also getting help from
various build/boot bots, gitlab and lkp, to get these tested. It would be
helpful if someone with access to the affected platforms can give it a try.

This is pushed here:

git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm.git opp/config

The entire patchset shall get merged via the OPP tree in 5.20-rc1, please do not
merge individual patches.

Thanks.

--
Viresh

Viresh Kumar (31):
OPP: Track if clock name is configured by platform
OPP: Add dev_pm_opp_set_config() and friends
cpufreq: dt: Migrate to dev_pm_opp_set_config()
cpufreq: imx: Migrate to dev_pm_opp_set_config()
cpufreq: qcom-nvmem: Migrate to dev_pm_opp_set_config()
cpufreq: sti: Migrate to dev_pm_opp_set_config()
cpufreq: sun50i: Migrate to dev_pm_opp_set_config()
cpufreq: tegra20: Migrate to dev_pm_opp_set_config()
cpufreq: ti: Migrate to dev_pm_opp_set_config()
devfreq: exynos: Migrate to dev_pm_opp_set_config()
devfreq: sun8i: Migrate to dev_pm_opp_set_config()
devfreq: tegra30: Migrate to dev_pm_opp_set_config()
drm/lima: Migrate to dev_pm_opp_set_config()
drm/msm: Migrate to dev_pm_opp_set_config()
drm/panfrost: Migrate to dev_pm_opp_set_config()
drm/tegra: Migrate to dev_pm_opp_set_config()
media: venus: Migrate to dev_pm_opp_set_config()
media: tegra: Migrate to dev_pm_opp_set_config()
mmc: sdhci-msm: Migrate to dev_pm_opp_set_config()
OPP: ti: Migrate to dev_pm_opp_set_config()
soc/tegra: Remove the call to devm_pm_opp_set_clkname()
soc/tegra: Migrate to dev_pm_opp_set_config()
spi: qcom: Migrate to dev_pm_opp_set_config()
serial: qcom: Migrate to dev_pm_opp_set_config()
OPP: Remove dev_pm_opp_set_regulators() and friends
OPP: Remove dev_pm_opp_set_supported_hw() and friends
OPP: Remove dev_pm_opp_set_clkname() and friends
OPP: Remove dev_pm_opp_register_set_opp_helper() and friends
OPP: Remove dev_pm_opp_attach_genpd() and friends
OPP: Remove dev_pm_opp_set_prop_name() and friends
OPP: Rearrange dev_pm_opp_set_config() and friends

drivers/cpufreq/cpufreq-dt.c | 14 +-
drivers/cpufreq/imx-cpufreq-dt.c | 12 +-
drivers/cpufreq/qcom-cpufreq-nvmem.c | 107 +---
drivers/cpufreq/sti-cpufreq.c | 22 +-
drivers/cpufreq/sun50i-cpufreq-nvmem.c | 11 +-
drivers/cpufreq/tegra20-cpufreq.c | 12 +-
drivers/cpufreq/ti-cpufreq.c | 38 +-
drivers/devfreq/exynos-bus.c | 14 +-
drivers/devfreq/sun8i-a33-mbus.c | 7 +-
drivers/devfreq/tegra30-devfreq.c | 8 +-
drivers/gpu/drm/lima/lima_devfreq.c | 11 +-
drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 8 +-
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 10 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 5 +-
drivers/gpu/drm/msm/dp/dp_ctrl.c | 5 +-
drivers/gpu/drm/msm/dsi/dsi_host.c | 5 +-
drivers/gpu/drm/panfrost/panfrost_devfreq.c | 9 +-
drivers/gpu/drm/tegra/gr3d.c | 6 +-
.../media/platform/qcom/venus/pm_helpers.c | 16 +-
drivers/memory/tegra/tegra124-emc.c | 14 +-
drivers/mmc/host/sdhci-msm.c | 5 +-
drivers/opp/core.c | 540 +++++++-----------
drivers/opp/opp.h | 2 +
drivers/opp/ti-opp-supply.c | 6 +-
drivers/soc/tegra/common.c | 14 +-
drivers/soc/tegra/pmc.c | 8 +-
drivers/spi/spi-geni-qcom.c | 5 +-
drivers/spi/spi-qcom-qspi.c | 5 +-
drivers/tty/serial/qcom_geni_serial.c | 5 +-
include/linux/pm_opp.h | 118 ++--
30 files changed, 444 insertions(+), 598 deletions(-)

--
2.31.1.272.g89b43f80a514