From: Matti Vaittinen <mazziesaccount@gmail.com>
To: Matti Vaittinen <mazziesaccount@gmail.com>,
Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Cc: "Jonathan Corbet" <corbet@lwn.net>,
"Michael Turquette" <mturquette@baylibre.com>,
"Stephen Boyd" <sboyd@kernel.org>,
"Andrzej Hajda" <andrzej.hajda@intel.com>,
"Neil Armstrong" <narmstrong@baylibre.com>,
"Robert Foss" <robert.foss@linaro.org>,
"Laurent Pinchart" <Laurent.pinchart@ideasonboard.com>,
"Jonas Karlman" <jonas@kwiboo.se>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"David Airlie" <airlied@linux.ie>,
"Daniel Vetter" <daniel@ffwll.ch>,
"Kevin Hilman" <khilman@baylibre.com>,
"Jerome Brunet" <jbrunet@baylibre.com>,
"Martin Blumenstingl" <martin.blumenstingl@googlemail.com>,
"Jean Delvare" <jdelvare@suse.com>,
"Guenter Roeck" <linux@roeck-us.net>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"Alexandru Tachici" <alexandru.tachici@analog.com>,
"Jonathan Cameron" <jic23@kernel.org>,
"Nuno Sá" <nuno.sa@analog.com>,
"Lorenzo Bianconi" <lorenzo@kernel.org>,
"Liam Girdwood" <lgirdwood@gmail.com>,
"Mark Brown" <broonie@kernel.org>,
"Matti Vaittinen" <mazziesaccount@gmail.com>,
"Johan Hovold" <johan+linaro@kernel.org>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Alexandru Ardelean" <aardelean@deviqon.com>,
"Aswath Govindraju" <a-govindraju@ti.com>,
"Miaoqian Lin" <linmq006@gmail.com>,
"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org,
linux-amlogic@lists.infradead.org,
linux-arm-kernel@lists.infradead.org,
linux-hwmon@vger.kernel.org, linux-iio@vger.kernel.org
Subject: [PATCH v2 0/7] Devm helpers for regulator get and enable
Date: Fri, 12 Aug 2022 13:08:17 +0300 [thread overview]
Message-ID: <cover.1660292316.git.mazziesaccount@gmail.com> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 4094 bytes --]
Devm helpers for regulator get and enable
First patch in the series is actually just a simple documentation fix
which could be taken in as it is now.
A few* drivers seem to use pattern demonstrated by pseudocode:
- devm_regulator_get()
- regulator_enable()
- devm_add_action_or_reset(regulator_disable())
Introducing devm helpers for this pattern would 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.
- remove stored pointer to struct regulator - which can lead to problem
when an devm action for regulator_disable is used.
I believe this simplifies things by removing some dublicated code.
The suggested managed 'get_enable' APIs do not return the pointer to
regulators for user because any call to regulator_disable()
(or regulator_enable()) may easily lead to regulator enable count imbalance
upon device detach. (Eg, if someone calls regulator_disable() and the
device is then detached before user has re-enabled the regulator). Not
returning the pointer to obtained regulator to caller is a good hint that
the enable/disable should not be manually handled when these APIs are used.
OTOH, not returning the pointer reduces the use-cases by not allowing
the consumers to perform other regulator actions. For example request the
voltages. A few drivers which used the "get, enable,
devm_action_to_disable" did also query the voltages. The API does not suit
needs of such users.
This series reowrks only a few drivers as I am short of time. So, 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:
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:
Fix docmentation (devres API list) for regulator APIs
Patch 2:
The new devm helpers.
Patch 3:
Add new devm-helper APIs to docs.
Patch 4:
simplified CLK driver(s)
Patch 5:
simplified GPU driver(s)
Patch 6:
simplified hwmon driver(s)
Patch 7:
simplified IIO driver(s)
---
Matti Vaittinen (7):
docs: devres: regulator: Add missing devm_* functions to devres.rst
regulator: Add devm helpers for get and enable
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()
iio: Simplify drivers using devm_regulator_*get_enable()
.../driver-api/driver-model/devres.rst | 11 ++
drivers/clk/clk-cdce925.c | 21 +--
drivers/gpu/drm/bridge/sii902x.c | 22 +--
drivers/gpu/drm/meson/meson_dw_hdmi.c | 23 +--
drivers/hwmon/lm90.c | 21 +--
drivers/iio/adc/ad7192.c | 15 +-
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 +---
drivers/regulator/devres.c | 164 ++++++++++++++++++
include/linux/regulator/consumer.h | 27 +++
12 files changed, 227 insertions(+), 156 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 #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
[-- Attachment #2: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2022-08-12 10:10 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-12 10:08 Matti Vaittinen [this message]
2022-08-12 10:11 ` [PATCH v2 5/7] gpu: drm: simplify drivers using devm_regulator_*get_enable*() Matti Vaittinen
2022-08-15 15:44 ` (subset) [PATCH v2 0/7] Devm helpers for regulator get and enable Mark Brown
2022-08-15 15:54 ` Laurent Pinchart
2022-08-15 16:33 ` Mark Brown
2022-08-15 18:52 ` Laurent Pinchart
2022-08-15 20:58 ` Stephen Boyd
2022-08-15 21:17 ` Laurent Pinchart
2022-08-15 22:55 ` Mark Brown
2022-08-16 4:56 ` Matti Vaittinen
2022-08-16 10:36 ` Mark Brown
2022-08-16 11:06 ` Vaittinen, Matti
2022-08-16 11:31 ` Mark Brown
2022-08-16 8:42 ` Andy Shevchenko
2022-08-15 22:07 ` Mark Brown
2022-08-30 19:42 ` Stephen Boyd
2022-08-16 8:23 ` Andy Shevchenko
2022-08-18 11:33 ` Matti Vaittinen
2022-08-18 11:54 ` Mark Brown
2022-08-18 12:04 ` Vaittinen, Matti
2022-08-18 14:01 ` Mark Brown
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=cover.1660292316.git.mazziesaccount@gmail.com \
--to=mazziesaccount@gmail.com \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=Michael.Hennerich@analog.com \
--cc=a-govindraju@ti.com \
--cc=aardelean@deviqon.com \
--cc=airlied@linux.ie \
--cc=alexandru.tachici@analog.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=andrzej.hajda@intel.com \
--cc=broonie@kernel.org \
--cc=corbet@lwn.net \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=jbrunet@baylibre.com \
--cc=jdelvare@suse.com \
--cc=jernej.skrabec@gmail.com \
--cc=jic23@kernel.org \
--cc=johan+linaro@kernel.org \
--cc=jonas@kwiboo.se \
--cc=khilman@baylibre.com \
--cc=lars@metafoo.de \
--cc=lgirdwood@gmail.com \
--cc=linmq006@gmail.com \
--cc=linux-amlogic@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=lorenzo@kernel.org \
--cc=martin.blumenstingl@googlemail.com \
--cc=matti.vaittinen@fi.rohmeurope.com \
--cc=mturquette@baylibre.com \
--cc=narmstrong@baylibre.com \
--cc=nuno.sa@analog.com \
--cc=robert.foss@linaro.org \
--cc=sboyd@kernel.org \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).