From: Yangtao Li <tiny.windzz@gmail.com> To: myungjoo.ham@samsung.com, kyungmin.park@samsung.com, cw00.choi@samsung.com, krzk@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, digetx@gmail.com, thierry.reding@gmail.com, jonathanh@nvidia.com, yuq825@gmail.com, airlied@linux.ie, daniel@ffwll.ch, robdclark@gmail.com, sean@poorly.run, robh@kernel.org, tomeu.vizoso@collabora.com, steven.price@arm.com, alyssa.rosenzweig@collabora.com, stanimir.varbanov@linaro.org, agross@kernel.org, bjorn.andersson@linaro.org, mchehab@kernel.org, lukasz.luba@arm.com, adrian.hunter@intel.com, ulf.hansson@linaro.org, vireshk@kernel.org, nm@ti.com, sboyd@kernel.org, broonie@kernel.org, gregkh@linuxfoundation.org, jirislaby@kernel.org, rjw@rjwysocki.net, jcrouse@codeaurora.org, hoegsberg@google.com, eric@anholt.net, tzimmermann@suse.de, marijn.suijten@somainline.org, gustavoars@kernel.org, emil.velikov@collabora.com, jonathan@marek.ca, akhilpo@codeaurora.org, smasetty@codeaurora.org, airlied@redhat.com, masneyb@onstation.org, kalyan_t@codeaurora.org, tanmay@codeaurora.org, tiny.windzz@gmail.com, ddavenport@chromium.org, jsanka@codeaurora.org, rnayak@codeaurora.org, tongtiangen@huawei.com, miaoqinglang@huawei.com, khsieh@codeaurora.org, abhinavk@codeaurora.org, chandanu@codeaurora.org, groeck@chromium.org, varar@codeaurora.org, mka@chromium.org, harigovi@codeaurora.org, rikard.falkeborn@gmail.com, natechancellor@gmail.com, georgi.djakov@linaro.org, akashast@codeaurora.org, parashar@codeaurora.org, dianders@chromium.org Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org, lima@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, linux-media@vger.kernel.org, linux-mmc@vger.kernel.org, linux-spi@vger.kernel.org, linux-serial@vger.kernel.org Subject: [PATCH 04/31] opp: Add devres wrapper for dev_pm_opp_of_add_table Date: Fri, 1 Jan 2021 16:54:40 +0000 [thread overview] Message-ID: <20210101165507.19486-5-tiny.windzz@gmail.com> (raw) In-Reply-To: <20210101165507.19486-1-tiny.windzz@gmail.com> Add devres wrapper for dev_pm_opp_of_add_table() to simplify driver code. Signed-off-by: Yangtao Li <tiny.windzz@gmail.com> --- drivers/opp/of.c | 36 ++++++++++++++++++++++++++++++++++++ include/linux/pm_opp.h | 6 ++++++ 2 files changed, 42 insertions(+) diff --git a/drivers/opp/of.c b/drivers/opp/of.c index 03cb387236c4..50df483c7dc3 100644 --- a/drivers/opp/of.c +++ b/drivers/opp/of.c @@ -998,6 +998,42 @@ int dev_pm_opp_of_add_table(struct device *dev) } EXPORT_SYMBOL_GPL(dev_pm_opp_of_add_table); +static void devm_pm_opp_of_table_release(void *data) +{ + dev_pm_opp_of_remove_table(data); +} + +/** + * devm_pm_opp_of_add_table() - Initialize opp table from device tree + * @dev: device pointer used to lookup OPP table. + * + * Register the initial OPP table with the OPP library for given device. + * + * The opp_table structure will be freed after the device is destroyed. + * + * Return: + * 0 On success OR + * Duplicate OPPs (both freq and volt are same) and opp->available + * -EEXIST Freq are same and volt are different OR + * Duplicate OPPs (both freq and volt are same) and !opp->available + * -ENOMEM Memory allocation failure + * -ENODEV when 'operating-points' property is not found or is invalid data + * in device node. + * -ENODATA when empty 'operating-points' property is found + * -EINVAL when invalid entries are found in opp-v2 table + */ +int devm_pm_opp_of_add_table(struct device *dev) +{ + int ret; + + ret = dev_pm_opp_of_add_table(dev); + if (ret) + return ret; + + return devm_add_action_or_reset(dev, devm_pm_opp_of_table_release, dev); +} +EXPORT_SYMBOL_GPL(devm_pm_opp_of_add_table); + /** * dev_pm_opp_of_add_table_indexed() - Initialize indexed opp table from device tree * @dev: device pointer used to lookup OPP table. diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h index e5260fc82ba1..e8bdac5f9555 100644 --- a/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h @@ -398,6 +398,7 @@ static inline void dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask int dev_pm_opp_of_add_table(struct device *dev); int dev_pm_opp_of_add_table_indexed(struct device *dev, int index); void dev_pm_opp_of_remove_table(struct device *dev); +int devm_pm_opp_of_add_table(struct device *dev); int dev_pm_opp_of_cpumask_add_table(const struct cpumask *cpumask); void dev_pm_opp_of_cpumask_remove_table(const struct cpumask *cpumask); int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask); @@ -425,6 +426,11 @@ static inline void dev_pm_opp_of_remove_table(struct device *dev) { } +static inline int devm_pm_opp_of_add_table(struct device *dev) +{ + return -ENOTSUPP; +} + static inline int dev_pm_opp_of_cpumask_add_table(const struct cpumask *cpumask) { return -ENOTSUPP; -- 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Yangtao Li <tiny.windzz@gmail.com> To: myungjoo.ham@samsung.com, kyungmin.park@samsung.com, cw00.choi@samsung.com, krzk@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, digetx@gmail.com, thierry.reding@gmail.com, jonathanh@nvidia.com, yuq825@gmail.com, airlied@linux.ie, daniel@ffwll.ch, robdclark@gmail.com, sean@poorly.run, robh@kernel.org, tomeu.vizoso@collabora.com, steven.price@arm.com, alyssa.rosenzweig@collabora.com, stanimir.varbanov@linaro.org, agross@kernel.org, bjorn.andersson@linaro.org, mchehab@kernel.org, lukasz.luba@arm.com, adrian.hunter@intel.com, ulf.hansson@linaro.org, vireshk@kernel.org, nm@ti.com, sboyd@kernel.org, broonie@kernel.org, gregkh@linuxfoundation.org, jirislaby@kernel.org, rjw@rjwysocki.net, jcrouse@codeaurora.org, hoegsberg@google.com, eric@anholt.net, tzimmermann@suse.de, marijn.suijten@somainline.org, gustavoars@kernel.org, emil.velikov@collabora.com, jonathan@marek.ca, akhilpo@codeaurora.org, smasetty@codeaurora.org, airlied@redhat.com, masneyb@onstation.org, kalyan_t@codeaurora.org, tanmay@codeaurora.org, tiny.windzz@gmail.com, ddavenport@chromium.org, jsanka@codeaurora.org, rnayak@codeaurora.org, tongtiangen@huawei.com, miaoqinglang@huawei.com, khsieh@codeaurora.org, abhinavk@codeaurora.org, chandanu@codeaurora.org, groeck@chromium.org, varar@codeaurora.org, mka@chromium.org, harigovi@codeaurora.org, rikard.falkeborn@gmail.com, natechancellor@gmail.com, georgi.djakov@linaro.org, akashast@codeaurora.org, parashar@codeaurora.org, dianders@chromium.org Cc: linux-samsung-soc@vger.kernel.org, lima@lists.freedesktop.org, linux-pm@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-spi@vger.kernel.org, linux-serial@vger.kernel.org, linux-tegra@vger.kernel.org, freedreno@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Subject: [PATCH 04/31] opp: Add devres wrapper for dev_pm_opp_of_add_table Date: Fri, 1 Jan 2021 16:54:40 +0000 [thread overview] Message-ID: <20210101165507.19486-5-tiny.windzz@gmail.com> (raw) In-Reply-To: <20210101165507.19486-1-tiny.windzz@gmail.com> Add devres wrapper for dev_pm_opp_of_add_table() to simplify driver code. Signed-off-by: Yangtao Li <tiny.windzz@gmail.com> --- drivers/opp/of.c | 36 ++++++++++++++++++++++++++++++++++++ include/linux/pm_opp.h | 6 ++++++ 2 files changed, 42 insertions(+) diff --git a/drivers/opp/of.c b/drivers/opp/of.c index 03cb387236c4..50df483c7dc3 100644 --- a/drivers/opp/of.c +++ b/drivers/opp/of.c @@ -998,6 +998,42 @@ int dev_pm_opp_of_add_table(struct device *dev) } EXPORT_SYMBOL_GPL(dev_pm_opp_of_add_table); +static void devm_pm_opp_of_table_release(void *data) +{ + dev_pm_opp_of_remove_table(data); +} + +/** + * devm_pm_opp_of_add_table() - Initialize opp table from device tree + * @dev: device pointer used to lookup OPP table. + * + * Register the initial OPP table with the OPP library for given device. + * + * The opp_table structure will be freed after the device is destroyed. + * + * Return: + * 0 On success OR + * Duplicate OPPs (both freq and volt are same) and opp->available + * -EEXIST Freq are same and volt are different OR + * Duplicate OPPs (both freq and volt are same) and !opp->available + * -ENOMEM Memory allocation failure + * -ENODEV when 'operating-points' property is not found or is invalid data + * in device node. + * -ENODATA when empty 'operating-points' property is found + * -EINVAL when invalid entries are found in opp-v2 table + */ +int devm_pm_opp_of_add_table(struct device *dev) +{ + int ret; + + ret = dev_pm_opp_of_add_table(dev); + if (ret) + return ret; + + return devm_add_action_or_reset(dev, devm_pm_opp_of_table_release, dev); +} +EXPORT_SYMBOL_GPL(devm_pm_opp_of_add_table); + /** * dev_pm_opp_of_add_table_indexed() - Initialize indexed opp table from device tree * @dev: device pointer used to lookup OPP table. diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h index e5260fc82ba1..e8bdac5f9555 100644 --- a/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h @@ -398,6 +398,7 @@ static inline void dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask int dev_pm_opp_of_add_table(struct device *dev); int dev_pm_opp_of_add_table_indexed(struct device *dev, int index); void dev_pm_opp_of_remove_table(struct device *dev); +int devm_pm_opp_of_add_table(struct device *dev); int dev_pm_opp_of_cpumask_add_table(const struct cpumask *cpumask); void dev_pm_opp_of_cpumask_remove_table(const struct cpumask *cpumask); int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask); @@ -425,6 +426,11 @@ static inline void dev_pm_opp_of_remove_table(struct device *dev) { } +static inline int devm_pm_opp_of_add_table(struct device *dev) +{ + return -ENOTSUPP; +} + static inline int dev_pm_opp_of_cpumask_add_table(const struct cpumask *cpumask) { return -ENOTSUPP; -- 2.25.1 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2021-01-01 16:57 UTC|newest] Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-01-01 16:54 [PATCH 00/31] Introduce devm_pm_opp_* API Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-01 16:54 ` [PATCH 01/31] opp: Add devres wrapper for dev_pm_opp_set_clkname and dev_pm_opp_put_clkname Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-04 7:30 ` Viresh Kumar 2021-01-04 7:30 ` Viresh Kumar 2021-01-01 16:54 ` [PATCH 02/31] opp: Add devres wrapper for dev_pm_opp_set_regulators and dev_pm_opp_put_regulators Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-20 15:52 ` Dmitry Osipenko 2021-01-20 15:52 ` Dmitry Osipenko 2021-01-01 16:54 ` [PATCH 03/31] opp: Add devres wrapper for dev_pm_opp_set_supported_hw Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-20 15:53 ` Dmitry Osipenko 2021-01-20 15:53 ` Dmitry Osipenko 2021-01-01 16:54 ` Yangtao Li [this message] 2021-01-01 16:54 ` [PATCH 04/31] opp: Add devres wrapper for dev_pm_opp_of_add_table Yangtao Li 2021-01-20 15:54 ` Dmitry Osipenko 2021-01-20 15:54 ` Dmitry Osipenko 2021-01-01 16:54 ` [PATCH 05/31] opp: Add devres wrapper for dev_pm_opp_register_notifier Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-04 7:15 ` Viresh Kumar 2021-01-04 7:15 ` Viresh Kumar 2021-01-01 16:54 ` [PATCH 06/31] serial: qcom_geni_serial: fix potential mem leak in qcom_geni_serial_probe() Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-04 7:02 ` Viresh Kumar 2021-01-04 7:02 ` Viresh Kumar 2021-01-01 16:54 ` [PATCH 07/31] serial: qcom_geni_serial: convert to use devm_pm_opp_* API Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-04 7:19 ` Viresh Kumar 2021-01-04 7:19 ` Viresh Kumar 2021-01-04 7:27 ` Viresh Kumar 2021-01-04 7:27 ` Viresh Kumar 2021-01-04 7:27 ` Viresh Kumar 2021-01-01 16:54 ` [PATCH 08/31] spi: spi-qcom-qspi: fix potential mem leak in spi_geni_probe() Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-04 13:58 ` Mark Brown 2021-01-04 13:58 ` Mark Brown 2021-01-01 16:54 ` [PATCH 09/31] " Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-04 14:02 ` Mark Brown 2021-01-04 14:02 ` Mark Brown 2021-01-01 16:54 ` [PATCH 10/31] qcom-geni-se: remove opp_table Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-01 16:54 ` [PATCH 11/31] mmc: sdhci-msm: fix potential mem leak in sdhci_msm_probe() Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-01 16:54 ` [PATCH 12/31] mmc: sdhci-msm: convert to use devm_pm_opp_* API Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-01 16:54 ` [PATCH 13/31] spi: spi-qcom-qspi: fix potential mem leak in qcom_qspi_probe() Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-04 14:02 ` Mark Brown 2021-01-04 14:02 ` Mark Brown 2021-01-01 16:54 ` [PATCH 14/31] spi: spi-qcom-qspi: convert to use devm_pm_opp_* API Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-04 14:05 ` Mark Brown 2021-01-04 14:05 ` Mark Brown 2021-01-01 16:54 ` [PATCH 15/31] drm/msm: fix potential mem leak Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-01 16:54 ` [PATCH 16/31] drm/msm: convert to use devm_pm_opp_* API and remove dp_ctrl_put Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-01 16:54 ` [PATCH 17/31] drm/lima: convert to use devm_pm_opp_* API Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-01 16:54 ` [PATCH 18/31] drm/lima: remove unneeded devm_devfreq_remove_device() Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-04 7:32 ` Viresh Kumar 2021-01-04 7:32 ` Viresh Kumar 2021-01-01 16:54 ` [PATCH 19/31] drm/panfrost: convert to use devm_pm_opp_* API Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-05 16:33 ` Steven Price 2021-01-05 16:33 ` Steven Price 2021-01-01 16:54 ` [PATCH 20/31] media: venus: fix error check in core_get_v4() Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-01 16:54 ` [PATCH 21/31] media: venus: convert to use devm_pm_opp_* API Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-01 16:54 ` [PATCH 22/31] memory: samsung: exynos5422-dmc: fix return error in exynos5_init_freq_table Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-04 18:03 ` Krzysztof Kozlowski 2021-01-04 18:03 ` Krzysztof Kozlowski 2021-01-01 16:54 ` [PATCH 23/31] memory: samsung: exynos5422-dmc: convert to use devm_pm_opp_* API Yangtao Li 2021-01-01 16:54 ` Yangtao Li 2021-01-04 18:04 ` Krzysztof Kozlowski 2021-01-04 18:04 ` Krzysztof Kozlowski 2021-01-01 16:55 ` [PATCH 24/31] memory: tegra20: " Yangtao Li 2021-01-01 16:55 ` Yangtao Li 2021-01-04 18:05 ` Krzysztof Kozlowski 2021-01-04 18:05 ` Krzysztof Kozlowski 2021-01-20 16:00 ` Dmitry Osipenko 2021-01-20 16:00 ` Dmitry Osipenko 2021-01-03 12:52 ` [PATCH 00/31] Introduce " Dmitry Osipenko 2021-01-03 12:52 ` Dmitry Osipenko 2021-01-03 14:30 ` Frank Lee 2021-01-03 14:30 ` Frank Lee 2021-01-03 14:54 ` Dmitry Osipenko 2021-01-03 14:54 ` Dmitry Osipenko 2021-01-04 7:29 ` Viresh Kumar 2021-01-04 7:29 ` Viresh Kumar 2021-01-04 7:33 ` Viresh Kumar 2021-01-04 7:33 ` Viresh Kumar 2021-01-20 16:01 ` Dmitry Osipenko 2021-01-20 16:01 ` Dmitry Osipenko 2021-03-02 13:40 ` Dmitry Osipenko 2021-03-02 13:40 ` Dmitry Osipenko 2021-03-03 4:01 ` Viresh Kumar 2021-03-03 4:01 ` Viresh Kumar 2021-03-03 8:31 ` Dmitry Osipenko 2021-03-03 8:31 ` Dmitry Osipenko
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210101165507.19486-5-tiny.windzz@gmail.com \ --to=tiny.windzz@gmail.com \ --cc=abhinavk@codeaurora.org \ --cc=adrian.hunter@intel.com \ --cc=agross@kernel.org \ --cc=airlied@linux.ie \ --cc=airlied@redhat.com \ --cc=akashast@codeaurora.org \ --cc=akhilpo@codeaurora.org \ --cc=alyssa.rosenzweig@collabora.com \ --cc=bjorn.andersson@linaro.org \ --cc=broonie@kernel.org \ --cc=chandanu@codeaurora.org \ --cc=cw00.choi@samsung.com \ --cc=daniel@ffwll.ch \ --cc=ddavenport@chromium.org \ --cc=dianders@chromium.org \ --cc=digetx@gmail.com \ --cc=dri-devel@lists.freedesktop.org \ --cc=emil.velikov@collabora.com \ --cc=eric@anholt.net \ --cc=festevam@gmail.com \ --cc=freedreno@lists.freedesktop.org \ --cc=georgi.djakov@linaro.org \ --cc=gregkh@linuxfoundation.org \ --cc=groeck@chromium.org \ --cc=gustavoars@kernel.org \ --cc=harigovi@codeaurora.org \ --cc=hoegsberg@google.com \ --cc=jcrouse@codeaurora.org \ --cc=jirislaby@kernel.org \ --cc=jonathan@marek.ca \ --cc=jonathanh@nvidia.com \ --cc=jsanka@codeaurora.org \ --cc=kalyan_t@codeaurora.org \ --cc=kernel@pengutronix.de \ --cc=khsieh@codeaurora.org \ --cc=krzk@kernel.org \ --cc=kyungmin.park@samsung.com \ --cc=lima@lists.freedesktop.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-imx@nxp.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-mmc@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux-samsung-soc@vger.kernel.org \ --cc=linux-serial@vger.kernel.org \ --cc=linux-spi@vger.kernel.org \ --cc=linux-tegra@vger.kernel.org \ --cc=lukasz.luba@arm.com \ --cc=marijn.suijten@somainline.org \ --cc=masneyb@onstation.org \ --cc=mchehab@kernel.org \ --cc=miaoqinglang@huawei.com \ --cc=mka@chromium.org \ --cc=myungjoo.ham@samsung.com \ --cc=natechancellor@gmail.com \ --cc=nm@ti.com \ --cc=parashar@codeaurora.org \ --cc=rikard.falkeborn@gmail.com \ --cc=rjw@rjwysocki.net \ --cc=rnayak@codeaurora.org \ --cc=robdclark@gmail.com \ --cc=robh@kernel.org \ --cc=s.hauer@pengutronix.de \ --cc=sboyd@kernel.org \ --cc=sean@poorly.run \ --cc=shawnguo@kernel.org \ --cc=smasetty@codeaurora.org \ --cc=stanimir.varbanov@linaro.org \ --cc=steven.price@arm.com \ --cc=tanmay@codeaurora.org \ --cc=thierry.reding@gmail.com \ --cc=tomeu.vizoso@collabora.com \ --cc=tongtiangen@huawei.com \ --cc=tzimmermann@suse.de \ --cc=ulf.hansson@linaro.org \ --cc=varar@codeaurora.org \ --cc=vireshk@kernel.org \ --cc=yuq825@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.