From: Dmitry Osipenko <digetx@gmail.com> To: Qiang Yu <yuq825@gmail.com>, Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>, Rob Herring <robh@kernel.org>, Tomeu Vizoso <tomeu.vizoso@collabora.com>, Steven Price <steven.price@arm.com>, Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>, Stanimir Varbanov <stanimir.varbanov@linaro.org>, Andy Gross <agross@kernel.org>, Bjorn Andersson <bjorn.andersson@linaro.org>, Mauro Carvalho Chehab <mchehab@kernel.org>, Lukasz Luba <lukasz.luba@arm.com>, Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>, Adrian Hunter <adrian.hunter@intel.com>, Ulf Hansson <ulf.hansson@linaro.org>, Viresh Kumar <vireshk@kernel.org>, Nishanth Menon <nm@ti.com>, Stephen Boyd <sboyd@kernel.org>, Mark Brown <broonie@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Jiri Slaby <jirislaby@kernel.org>, Yangtao Li <tiny.windzz@gmail.com> Cc: Daniel Vetter <daniel@ffwll.ch>, dri-devel@lists.freedesktop.org, lima@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, linux-media@vger.kernel.org, linux-pm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-mmc@vger.kernel.org, linux-spi@vger.kernel.org, linux-serial@vger.kernel.org, linux-tegra@vger.kernel.org Subject: [PATCH v3 02/15] opp: Add devres wrapper for dev_pm_opp_set_regulators Date: Sun, 14 Mar 2021 19:33:55 +0300 [thread overview] Message-ID: <20210314163408.22292-3-digetx@gmail.com> (raw) In-Reply-To: <20210314163408.22292-1-digetx@gmail.com> From: Yangtao Li <tiny.windzz@gmail.com> Add devres wrapper for dev_pm_opp_set_regulators() to simplify drivers code. Signed-off-by: Yangtao Li <tiny.windzz@gmail.com> Signed-off-by: Dmitry Osipenko <digetx@gmail.com> --- drivers/opp/core.c | 30 ++++++++++++++++++++++++++++++ include/linux/pm_opp.h | 8 ++++++++ 2 files changed, 38 insertions(+) diff --git a/drivers/opp/core.c b/drivers/opp/core.c index 02e46508a3a2..6217af05141f 100644 --- a/drivers/opp/core.c +++ b/drivers/opp/core.c @@ -2047,6 +2047,36 @@ void dev_pm_opp_put_regulators(struct opp_table *opp_table) } EXPORT_SYMBOL_GPL(dev_pm_opp_put_regulators); +static void devm_pm_opp_regulators_release(void *data) +{ + dev_pm_opp_put_regulators(data); +} + +/** + * devm_pm_opp_set_regulators() - Set regulator names for the device + * @dev: Device for which regulator name is being set. + * @names: Array of pointers to the names of the regulator. + * @count: Number of regulators. + * + * This is a resource-managed variant of dev_pm_opp_set_regulators(). + * + * Return: 0 on success and errorno otherwise. + */ +int devm_pm_opp_set_regulators(struct device *dev, + const char * const names[], + unsigned int count) +{ + struct opp_table *opp_table; + + opp_table = dev_pm_opp_set_regulators(dev, names, count); + if (IS_ERR(opp_table)) + return PTR_ERR(opp_table); + + return devm_add_action_or_reset(dev, devm_pm_opp_regulators_release, + opp_table); +} +EXPORT_SYMBOL_GPL(devm_pm_opp_set_regulators); + /** * dev_pm_opp_set_clkname() - Set clk name for the device * @dev: Device for which clk name is being set. diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h index 0583d775aa5a..3e667af57211 100644 --- a/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h @@ -148,6 +148,7 @@ struct opp_table *dev_pm_opp_set_prop_name(struct device *dev, const char *name) void dev_pm_opp_put_prop_name(struct opp_table *opp_table); struct opp_table *dev_pm_opp_set_regulators(struct device *dev, const char * const names[], unsigned int count); void dev_pm_opp_put_regulators(struct opp_table *opp_table); +int devm_pm_opp_set_regulators(struct device *dev, const char * const names[], unsigned int count); struct opp_table *dev_pm_opp_set_clkname(struct device *dev, const char *name); void dev_pm_opp_put_clkname(struct opp_table *opp_table); int devm_pm_opp_set_clkname(struct device *dev, const char *name); @@ -349,6 +350,13 @@ static inline struct opp_table *dev_pm_opp_set_regulators(struct device *dev, co static inline void dev_pm_opp_put_regulators(struct opp_table *opp_table) {} +static inline int devm_pm_opp_set_regulators(struct device *dev, + const char * const names[], + unsigned int count) +{ + return -EOPNOTSUPP; +} + static inline struct opp_table *dev_pm_opp_set_clkname(struct device *dev, const char *name) { return ERR_PTR(-EOPNOTSUPP); -- 2.30.2
WARNING: multiple messages have this Message-ID (diff)
From: Dmitry Osipenko <digetx@gmail.com> To: Qiang Yu <yuq825@gmail.com>, Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>, Rob Herring <robh@kernel.org>, Tomeu Vizoso <tomeu.vizoso@collabora.com>, Steven Price <steven.price@arm.com>, Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>, Stanimir Varbanov <stanimir.varbanov@linaro.org>, Andy Gross <agross@kernel.org>, Bjorn Andersson <bjorn.andersson@linaro.org>, Mauro Carvalho Chehab <mchehab@kernel.org>, Lukasz Luba <lukasz.luba@arm.com>, Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>, Adrian Hunter <adrian.hunter@intel.com>, Ulf Hansson <ulf.hansson@linaro.org>, Viresh Kumar <vireshk@kernel.org>, Nishanth Menon <nm@ti.com>, Stephen Boyd <sboyd@kernel.org>, Mark Brown <broonie@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Jiri Slaby <jirislaby@kernel.org>, Yangtao Li <tiny.windzz@gmail.com> Cc: linux-samsung-soc@vger.kernel.org, linux-serial@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-tegra@vger.kernel.org, freedreno@lists.freedesktop.org, linux-media@vger.kernel.org Subject: [PATCH v3 02/15] opp: Add devres wrapper for dev_pm_opp_set_regulators Date: Sun, 14 Mar 2021 19:33:55 +0300 [thread overview] Message-ID: <20210314163408.22292-3-digetx@gmail.com> (raw) In-Reply-To: <20210314163408.22292-1-digetx@gmail.com> From: Yangtao Li <tiny.windzz@gmail.com> Add devres wrapper for dev_pm_opp_set_regulators() to simplify drivers code. Signed-off-by: Yangtao Li <tiny.windzz@gmail.com> Signed-off-by: Dmitry Osipenko <digetx@gmail.com> --- drivers/opp/core.c | 30 ++++++++++++++++++++++++++++++ include/linux/pm_opp.h | 8 ++++++++ 2 files changed, 38 insertions(+) diff --git a/drivers/opp/core.c b/drivers/opp/core.c index 02e46508a3a2..6217af05141f 100644 --- a/drivers/opp/core.c +++ b/drivers/opp/core.c @@ -2047,6 +2047,36 @@ void dev_pm_opp_put_regulators(struct opp_table *opp_table) } EXPORT_SYMBOL_GPL(dev_pm_opp_put_regulators); +static void devm_pm_opp_regulators_release(void *data) +{ + dev_pm_opp_put_regulators(data); +} + +/** + * devm_pm_opp_set_regulators() - Set regulator names for the device + * @dev: Device for which regulator name is being set. + * @names: Array of pointers to the names of the regulator. + * @count: Number of regulators. + * + * This is a resource-managed variant of dev_pm_opp_set_regulators(). + * + * Return: 0 on success and errorno otherwise. + */ +int devm_pm_opp_set_regulators(struct device *dev, + const char * const names[], + unsigned int count) +{ + struct opp_table *opp_table; + + opp_table = dev_pm_opp_set_regulators(dev, names, count); + if (IS_ERR(opp_table)) + return PTR_ERR(opp_table); + + return devm_add_action_or_reset(dev, devm_pm_opp_regulators_release, + opp_table); +} +EXPORT_SYMBOL_GPL(devm_pm_opp_set_regulators); + /** * dev_pm_opp_set_clkname() - Set clk name for the device * @dev: Device for which clk name is being set. diff --git a/include/linux/pm_opp.h b/include/linux/pm_opp.h index 0583d775aa5a..3e667af57211 100644 --- a/include/linux/pm_opp.h +++ b/include/linux/pm_opp.h @@ -148,6 +148,7 @@ struct opp_table *dev_pm_opp_set_prop_name(struct device *dev, const char *name) void dev_pm_opp_put_prop_name(struct opp_table *opp_table); struct opp_table *dev_pm_opp_set_regulators(struct device *dev, const char * const names[], unsigned int count); void dev_pm_opp_put_regulators(struct opp_table *opp_table); +int devm_pm_opp_set_regulators(struct device *dev, const char * const names[], unsigned int count); struct opp_table *dev_pm_opp_set_clkname(struct device *dev, const char *name); void dev_pm_opp_put_clkname(struct opp_table *opp_table); int devm_pm_opp_set_clkname(struct device *dev, const char *name); @@ -349,6 +350,13 @@ static inline struct opp_table *dev_pm_opp_set_regulators(struct device *dev, co static inline void dev_pm_opp_put_regulators(struct opp_table *opp_table) {} +static inline int devm_pm_opp_set_regulators(struct device *dev, + const char * const names[], + unsigned int count) +{ + return -EOPNOTSUPP; +} + static inline struct opp_table *dev_pm_opp_set_clkname(struct device *dev, const char *name) { return ERR_PTR(-EOPNOTSUPP); -- 2.30.2 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2021-03-14 16:35 UTC|newest] Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-03-14 16:33 [PATCH v3 00/15] Introduce devm_pm_opp_* API Dmitry Osipenko 2021-03-14 16:33 ` Dmitry Osipenko 2021-03-14 16:33 ` [PATCH v3 01/15] opp: Add devres wrapper for dev_pm_opp_set_clkname Dmitry Osipenko 2021-03-14 16:33 ` Dmitry Osipenko 2021-03-14 16:33 ` Dmitry Osipenko [this message] 2021-03-14 16:33 ` [PATCH v3 02/15] opp: Add devres wrapper for dev_pm_opp_set_regulators Dmitry Osipenko 2021-03-14 16:33 ` [PATCH v3 03/15] opp: Add devres wrapper for dev_pm_opp_set_supported_hw Dmitry Osipenko 2021-03-14 16:33 ` Dmitry Osipenko 2021-03-14 16:33 ` [PATCH v3 04/15] opp: Add devres wrapper for dev_pm_opp_of_add_table Dmitry Osipenko 2021-03-14 16:33 ` Dmitry Osipenko 2021-03-14 16:33 ` [PATCH v3 05/15] opp: Change return type of devm_pm_opp_register_set_opp_helper() Dmitry Osipenko 2021-03-14 16:33 ` Dmitry Osipenko 2021-03-14 16:33 ` [PATCH v3 06/15] opp: Change return type of devm_pm_opp_attach_genpd() Dmitry Osipenko 2021-03-14 16:33 ` Dmitry Osipenko 2021-03-14 16:34 ` [PATCH v3 07/15] serial: qcom_geni_serial: Convert to use resource-managed OPP API Dmitry Osipenko 2021-03-14 16:34 ` Dmitry Osipenko 2021-03-14 16:34 ` [PATCH v3 08/15] spi: spi-geni-qcom: " Dmitry Osipenko 2021-03-14 16:34 ` Dmitry Osipenko 2021-03-14 16:34 ` [PATCH v3 09/15] spi: spi-qcom-qspi: " Dmitry Osipenko 2021-03-14 16:34 ` Dmitry Osipenko 2021-03-14 16:34 ` [PATCH v3 10/15] mmc: sdhci-msm: " Dmitry Osipenko 2021-03-14 16:34 ` Dmitry Osipenko 2021-03-14 16:34 ` [PATCH v3 11/15] drm/msm: " Dmitry Osipenko 2021-03-14 16:34 ` Dmitry Osipenko 2021-03-15 4:03 ` Viresh Kumar 2021-03-15 4:03 ` Viresh Kumar 2021-03-14 16:34 ` [PATCH v3 12/15] drm/lima: " Dmitry Osipenko 2021-03-14 16:34 ` Dmitry Osipenko 2021-03-14 16:34 ` [PATCH v3 13/15] drm/panfrost: " Dmitry Osipenko 2021-03-14 16:34 ` Dmitry Osipenko 2021-03-14 16:34 ` [PATCH v3 14/15] media: venus: " Dmitry Osipenko 2021-03-14 16:34 ` Dmitry Osipenko 2021-03-25 8:13 ` Stanimir Varbanov 2021-03-25 8:13 ` Stanimir Varbanov 2021-03-25 9:09 ` Viresh Kumar 2021-03-25 9:09 ` Viresh Kumar 2021-03-14 16:34 ` [PATCH v3 15/15] memory: samsung: exynos5422-dmc: " Dmitry Osipenko 2021-03-14 16:34 ` Dmitry Osipenko 2021-03-15 4:06 ` [PATCH v3 00/15] Introduce devm_pm_opp_* API Viresh Kumar 2021-03-15 4:06 ` Viresh Kumar
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=20210314163408.22292-3-digetx@gmail.com \ --to=digetx@gmail.com \ --cc=adrian.hunter@intel.com \ --cc=agross@kernel.org \ --cc=alyssa.rosenzweig@collabora.com \ --cc=bjorn.andersson@linaro.org \ --cc=broonie@kernel.org \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=freedreno@lists.freedesktop.org \ --cc=gregkh@linuxfoundation.org \ --cc=jirislaby@kernel.org \ --cc=krzysztof.kozlowski@canonical.com \ --cc=lima@lists.freedesktop.org \ --cc=linux-arm-msm@vger.kernel.org \ --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=mchehab@kernel.org \ --cc=nm@ti.com \ --cc=robdclark@gmail.com \ --cc=robh@kernel.org \ --cc=sboyd@kernel.org \ --cc=sean@poorly.run \ --cc=stanimir.varbanov@linaro.org \ --cc=steven.price@arm.com \ --cc=tiny.windzz@gmail.com \ --cc=tomeu.vizoso@collabora.com \ --cc=ulf.hansson@linaro.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.