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/