* [PATCH v3 00/14] Use devm helpers for regulator get and enable
@ 2022-08-19 19:16 Matti Vaittinen
2022-08-19 19:17 ` [PATCH v3 02/14] clk: cdce925: simplify using devm_regulator_get_enable() Matti Vaittinen
2022-08-19 23:27 ` [PATCH v3 00/14] Use devm helpers for regulator get and enable Andy Shevchenko
0 siblings, 2 replies; 4+ messages in thread
From: Matti Vaittinen @ 2022-08-19 19:16 UTC (permalink / raw)
To: Matti Vaittinen, Matti Vaittinen
Cc: Jonathan Corbet, Michael Turquette, Stephen Boyd, Andrzej Hajda,
Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman,
Jernej Skrabec, David Airlie, Daniel Vetter, Kevin Hilman,
Jerome Brunet, Martin Blumenstingl, Michael Hennerich,
Jean Delvare, Guenter Roeck, Lars-Peter Clausen,
Alexandru Tachici, Jonathan Cameron, Nuno Sá,
Lorenzo Bianconi, Liam Girdwood, Mark Brown, Matti Vaittinen,
Aswath Govindraju, Peter Rosin, Andy Shevchenko, Johan Hovold,
Alexandru Ardelean, Cai Huoqing, Alexandru Lazar, Miaoqian Lin,
Xiang wangx, linux-doc, linux-kernel, linux-clk, dri-devel,
linux-amlogic, linux-arm-kernel, linux-hwmon, linux-iio
[-- Attachment #1: Type: text/plain, Size: 3972 bytes --]
Use devm helpers for regulator get and enable
NOTE: The series depends on commit
ee94aff2628b ("Devm helpers for regulator get and enable")
which currently sits in Mark's regulator/for-next
A few* drivers seem to pattern demonstrated by pseudocode:
- devm_regulator_get()
- regulator_enable()
- devm_add_action_or_reset(regulator_disable())
devm helpers for this pattern were added to remove bunch of code from
drivers. Typically following:
- replace 3 calls (devm_regulator_get[_optional](), regulator_enable(),
devm_add_action_or_reset()) with just one
(devm_regulator_get_enable[_optional]()).
- drop disable callback.
I believe this simplifies things by removing some dublicated code.
This series reowrks a few drivers. There is still plenty of fish in the
sea for people who like to improve the code (or count the beans ;]).
Finally - most of the converted drivers have not been tested (other than
compile-tested) due to lack of HW. All reviews and testing is _highly_
appreciated (as always!).
Revision history:
v3:
- Drop already applied helper patches
- Add a few more drivers
RFCv1 => v2:
- Add devm_regulator_bulk_get_enable() and
devm_regulator_bulk_put()
- Convert a couple of drivers to use the new
devm_regulator_bulk_get_enable().
- Squash all IIO patches into one.
Patch 1:
Add new devm-helper APIs to docs.
Patch 2:
simplified CLK driver(s)
Patch 3:
simplified GPU driver(s)
Patch 4 - 5:
simplified hwmon driver(s)
Patch 6 - 14:
simplified IIO driver(s)
---
Matti Vaittinen (14):
docs: devres: regulator: Add new get_enable functions to devres.rst
clk: cdce925: simplify using devm_regulator_get_enable()
gpu: drm: simplify drivers using devm_regulator_*get_enable*()
hwmon: lm90: simplify using devm_regulator_get_enable()
hwmon: adm1177: simplify using devm_regulator_get_enable()
iio: ad7192: Simplify using devm_regulator_get_enable()
iio: ltc2688: Simplify using devm_regulator_*get_enable()
iio: bmg160_core: Simplify using devm_regulator_*get_enable()
iio: st_lsm6dsx: Simplify using devm_regulator_*get_enable()
iio: ad7476: simplify using devm_regulator_get_enable()
iio: ad7606: simplify using devm_regulator_get_enable()
iio: max1241: simplify using devm_regulator_get_enable()
iio: max1363: simplify using devm_regulator_get_enable()
iio: hmc425a: simplify using devm_regulator_get_enable()
.../driver-api/driver-model/devres.rst | 4 +++
drivers/clk/clk-cdce925.c | 21 +++----------
drivers/gpu/drm/bridge/sii902x.c | 22 ++------------
drivers/gpu/drm/meson/meson_dw_hdmi.c | 23 ++------------
drivers/hwmon/adm1177.c | 27 ++---------------
drivers/hwmon/lm90.c | 15 ++--------
drivers/iio/adc/ad7192.c | 15 ++--------
drivers/iio/adc/ad7476.c | 11 +------
drivers/iio/adc/ad7606.c | 22 ++------------
drivers/iio/adc/ad7606.h | 1 -
drivers/iio/adc/max1241.c | 28 ++---------------
drivers/iio/adc/max1363.c | 11 +------
drivers/iio/amplifiers/hmc425a.c | 17 +----------
drivers/iio/dac/ltc2688.c | 23 ++------------
drivers/iio/gyro/bmg160_core.c | 24 ++-------------
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h | 2 --
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 30 ++++---------------
17 files changed, 41 insertions(+), 255 deletions(-)
--
2.37.1
--
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland SWDC
Kiviharjunlenkki 1E
90220 OULU
FINLAND
~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
Simon says - in Latin please.
~~~ "non cogito me" dixit Rene Descarte, deinde evanescavit ~~~
Thanks to Simon Glass for the translation =]
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3 02/14] clk: cdce925: simplify using devm_regulator_get_enable()
2022-08-19 19:16 [PATCH v3 00/14] Use devm helpers for regulator get and enable Matti Vaittinen
@ 2022-08-19 19:17 ` Matti Vaittinen
2022-10-17 23:07 ` Stephen Boyd
2022-08-19 23:27 ` [PATCH v3 00/14] Use devm helpers for regulator get and enable Andy Shevchenko
1 sibling, 1 reply; 4+ messages in thread
From: Matti Vaittinen @ 2022-08-19 19:17 UTC (permalink / raw)
To: Matti Vaittinen, Matti Vaittinen
Cc: Michael Turquette, Stephen Boyd, linux-clk, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1929 bytes --]
Simplify the driver using devm_regulator_get_enable() instead of
open-coding the devm_add_action_or_reset().
A (minor?) functional change is that we don't print an error in case of a
deferred probe. Now we also print the error no matter which of the
involved calls caused the failure.
Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
---
RFCv1 => onwards:
- No changes
---
drivers/clk/clk-cdce925.c | 21 ++++-----------------
1 file changed, 4 insertions(+), 17 deletions(-)
diff --git a/drivers/clk/clk-cdce925.c b/drivers/clk/clk-cdce925.c
index ef9a2d44e40c..6350682f7e6d 100644
--- a/drivers/clk/clk-cdce925.c
+++ b/drivers/clk/clk-cdce925.c
@@ -603,28 +603,15 @@ of_clk_cdce925_get(struct of_phandle_args *clkspec, void *_data)
return &data->clk[idx].hw;
}
-static void cdce925_regulator_disable(void *regulator)
-{
- regulator_disable(regulator);
-}
-
static int cdce925_regulator_enable(struct device *dev, const char *name)
{
- struct regulator *regulator;
int err;
- regulator = devm_regulator_get(dev, name);
- if (IS_ERR(regulator))
- return PTR_ERR(regulator);
-
- err = regulator_enable(regulator);
- if (err) {
- dev_err(dev, "Failed to enable %s: %d\n", name, err);
- return err;
- }
+ err = devm_regulator_get_enable(dev, name);
+ if (err)
+ dev_err_probe(dev, err, "Failed to enable %s:\n", name);
- return devm_add_action_or_reset(dev, cdce925_regulator_disable,
- regulator);
+ return err;
}
/* The CDCE925 uses a funky way to read/write registers. Bulk mode is
--
2.37.1
--
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland SWDC
Kiviharjunlenkki 1E
90220 OULU
FINLAND
~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
Simon says - in Latin please.
~~~ "non cogito me" dixit Rene Descarte, deinde evanescavit ~~~
Thanks to Simon Glass for the translation =]
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3 00/14] Use devm helpers for regulator get and enable
2022-08-19 19:16 [PATCH v3 00/14] Use devm helpers for regulator get and enable Matti Vaittinen
2022-08-19 19:17 ` [PATCH v3 02/14] clk: cdce925: simplify using devm_regulator_get_enable() Matti Vaittinen
@ 2022-08-19 23:27 ` Andy Shevchenko
1 sibling, 0 replies; 4+ messages in thread
From: Andy Shevchenko @ 2022-08-19 23:27 UTC (permalink / raw)
To: Matti Vaittinen
Cc: Matti Vaittinen, Jonathan Corbet, Michael Turquette, Stephen Boyd,
Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter,
Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
Michael Hennerich, Jean Delvare, Guenter Roeck,
Lars-Peter Clausen, Alexandru Tachici, Jonathan Cameron,
Nuno Sá, Lorenzo Bianconi, Liam Girdwood, Mark Brown,
Aswath Govindraju, Peter Rosin, Andy Shevchenko, Johan Hovold,
Alexandru Ardelean, Cai Huoqing, Alexandru Lazar, Miaoqian Lin,
Xiang wangx, Linux Documentation List, Linux Kernel Mailing List,
linux-clk, dri-devel, linux-amlogic, linux-arm Mailing List,
linux-hwmon, linux-iio
On Fri, Aug 19, 2022 at 10:20 PM Matti Vaittinen
<mazziesaccount@gmail.com> wrote:
>
> Use devm helpers for regulator get and enable
>
> NOTE: The series depends on commit
> ee94aff2628b ("Devm helpers for regulator get and enable")
> which currently sits in Mark's regulator/for-next
>
> A few* drivers seem to pattern demonstrated by pseudocode:
>
> - devm_regulator_get()
> - regulator_enable()
> - devm_add_action_or_reset(regulator_disable())
>
> devm helpers for this pattern were added to remove bunch of code from
remove a bunch
> drivers. Typically following:
>
> - replace 3 calls (devm_regulator_get[_optional](), regulator_enable(),
> devm_add_action_or_reset()) with just one
> (devm_regulator_get_enable[_optional]()).
> - drop disable callback.
>
> I believe this simplifies things by removing some dublicated code.
duplicated
> This series reowrks a few drivers. There is still plenty of fish in the
reworks
> sea for people who like to improve the code (or count the beans ;]).
>
> Finally - most of the converted drivers have not been tested (other than
> compile-tested) due to lack of HW. All reviews and testing is _highly_
> appreciated (as always!).
...
> docs: devres: regulator: Add new get_enable functions to devres.rst
> clk: cdce925: simplify using devm_regulator_get_enable()
> gpu: drm: simplify drivers using devm_regulator_*get_enable*()
> hwmon: lm90: simplify using devm_regulator_get_enable()
> hwmon: adm1177: simplify using devm_regulator_get_enable()
hwmon uses a different pattern for the Subject line.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3 02/14] clk: cdce925: simplify using devm_regulator_get_enable()
2022-08-19 19:17 ` [PATCH v3 02/14] clk: cdce925: simplify using devm_regulator_get_enable() Matti Vaittinen
@ 2022-10-17 23:07 ` Stephen Boyd
0 siblings, 0 replies; 4+ messages in thread
From: Stephen Boyd @ 2022-10-17 23:07 UTC (permalink / raw)
To: Matti Vaittinen, Matti Vaittinen
Cc: Michael Turquette, linux-clk, linux-kernel
Quoting Matti Vaittinen (2022-08-19 12:17:53)
> Simplify the driver using devm_regulator_get_enable() instead of
> open-coding the devm_add_action_or_reset().
>
> A (minor?) functional change is that we don't print an error in case of a
> deferred probe. Now we also print the error no matter which of the
> involved calls caused the failure.
>
> Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
>
> ---
Applied to clk-next
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-10-17 23:08 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-19 19:16 [PATCH v3 00/14] Use devm helpers for regulator get and enable Matti Vaittinen
2022-08-19 19:17 ` [PATCH v3 02/14] clk: cdce925: simplify using devm_regulator_get_enable() Matti Vaittinen
2022-10-17 23:07 ` Stephen Boyd
2022-08-19 23:27 ` [PATCH v3 00/14] Use devm helpers for regulator get and enable Andy Shevchenko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).