Re: [PATCH 00/31] Introduce devm_pm_opp_* API

From: Dmitry Osipenko
Date: Sun Jan 03 2021 - 09:56:06 EST


03.01.2021 17:30, Frank Lee пишет:
> HI,
>
> On Sun, Jan 3, 2021 at 8:52 PM Dmitry Osipenko <digetx@xxxxxxxxx> wrote:
>>
>> 01.01.2021 19:54, Yangtao Li пишет:
>>> Hi,
>>>
>>> This patchset add devm_pm_opp_set_clkname, devm_pm_opp_put_clkname,
>>> devm_pm_opp_set_regulators, devm_pm_opp_put_regulators,
>>> devm_pm_opp_set_supported_hw, devm_pm_opp_of_add_table and
>>> devm_pm_opp_register_notifier.
>>>
>>> Yangtao Li (31):
>>> opp: Add devres wrapper for dev_pm_opp_set_clkname and
>>> dev_pm_opp_put_clkname
>>> opp: Add devres wrapper for dev_pm_opp_set_regulators and
>>> dev_pm_opp_put_regulators
>>> opp: Add devres wrapper for dev_pm_opp_set_supported_hw
>>> opp: Add devres wrapper for dev_pm_opp_of_add_table
>>> opp: Add devres wrapper for dev_pm_opp_register_notifier
>>> serial: qcom_geni_serial: fix potential mem leak in
>>> qcom_geni_serial_probe()
>>> serial: qcom_geni_serial: convert to use devm_pm_opp_* API
>>> spi: spi-qcom-qspi: fix potential mem leak in spi_geni_probe()
>>> spi: spi-qcom-qspi: fix potential mem leak in spi_geni_probe()
>>> qcom-geni-se: remove opp_table
>>> mmc: sdhci-msm: fix potential mem leak in sdhci_msm_probe()
>>> mmc: sdhci-msm: convert to use devm_pm_opp_* API
>>> spi: spi-qcom-qspi: fix potential mem leak in qcom_qspi_probe()
>>> spi: spi-qcom-qspi: convert to use devm_pm_opp_* API
>>> drm/msm: fix potential mem leak
>>> drm/msm: convert to use devm_pm_opp_* API and remove dp_ctrl_put
>>> drm/lima: convert to use devm_pm_opp_* API
>>> drm/lima: remove unneeded devm_devfreq_remove_device()
>>> drm/panfrost: convert to use devm_pm_opp_* API
>>> media: venus: fix error check in core_get_v4()
>>> media: venus: convert to use devm_pm_opp_* API
>>> memory: samsung: exynos5422-dmc: fix return error in
>>> exynos5_init_freq_table
>>> memory: samsung: exynos5422-dmc: convert to use devm_pm_opp_* API
>>> memory: tegra20: convert to use devm_pm_opp_* API
>>> memory: tegra30: convert to use devm_pm_opp_* API
>>> PM / devfreq: tegra30: convert to use devm_pm_opp_* API
>>> PM / devfreq: rk3399_dmc: convert to use devm_pm_opp_* API
>>> PM / devfreq: imx8m-ddrc: convert to use devm_pm_opp_* API
>>> PM / devfreq: imx-bus: convert to use devm_pm_opp_* API
>>> PM / devfreq: exynos: convert to use devm_pm_opp_* API
>>> PM / devfreq: convert to devm_pm_opp_register_notifier and remove
>>> unused API
>>>
>>> drivers/devfreq/devfreq.c | 66 +------
>>> drivers/devfreq/exynos-bus.c | 42 +----
>>> drivers/devfreq/imx-bus.c | 14 +-
>>> drivers/devfreq/imx8m-ddrc.c | 15 +-
>>> drivers/devfreq/rk3399_dmc.c | 22 +--
>>> drivers/devfreq/tegra30-devfreq.c | 21 +--
>>> drivers/gpu/drm/lima/lima_devfreq.c | 45 +----
>>> drivers/gpu/drm/lima/lima_devfreq.h | 2 -
>>> drivers/gpu/drm/msm/adreno/a5xx_gpu.c | 2 +-
>>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 2 +-
>>> drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +-
>>> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 31 ++--
>>> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 2 -
>>> drivers/gpu/drm/msm/dp/dp_ctrl.c | 29 +--
>>> drivers/gpu/drm/msm/dp/dp_ctrl.h | 1 -
>>> drivers/gpu/drm/msm/dp/dp_display.c | 5 +-
>>> drivers/gpu/drm/msm/dsi/dsi_host.c | 23 ++-
>>> drivers/gpu/drm/panfrost/panfrost_devfreq.c | 34 +---
>>> drivers/gpu/drm/panfrost/panfrost_devfreq.h | 1 -
>>> .../media/platform/qcom/venus/pm_helpers.c | 22 +--
>>> drivers/memory/samsung/exynos5422-dmc.c | 13 +-
>>> drivers/memory/tegra/tegra20-emc.c | 29 +--
>>> drivers/memory/tegra/tegra30-emc.c | 29 +--
>>> drivers/mmc/host/sdhci-msm.c | 27 ++-
>>> drivers/opp/core.c | 173 ++++++++++++++++++
>>> drivers/opp/of.c | 36 ++++
>>> drivers/spi/spi-geni-qcom.c | 23 ++-
>>> drivers/spi/spi-qcom-qspi.c | 25 ++-
>>> drivers/tty/serial/qcom_geni_serial.c | 31 ++--
>>> include/linux/devfreq.h | 23 ---
>>> include/linux/pm_opp.h | 38 ++++
>>> include/linux/qcom-geni-se.h | 2 -
>>> 32 files changed, 402 insertions(+), 428 deletions(-)
>>>
>>
>> Hello,
>>
>> Could you please add helper for dev_pm_opp_attach_genpd() and make
>> cpufreq drivers to use the helpers?
>
> Thank you for reminding me. But we shouldn't use this for CPU devices
> as the CPU device doesn't get bound to a driver, it is rather a fake platform
> device which gets the cpufreq drivers probed.

Indeed, the CPU device exists seprately from cpufreq driver.

>> I'd also like to see a devm helper for
>> dev_pm_opp_register_set_opp_helper(), which should become useful for
>> Tegra drivers sometime soon.
>
> For non-cpu devices?

For DRM driver I'd want to use devm for both set_opp_helper() and
opp_attach_genpd().

https://patchwork.ozlabs.org/project/linux-tegra/patch/20201217180638.22748-39-digetx@xxxxxxxxx/