* [PATCH] pwm: Delete deprecated functions pwm_request() and pwm_free()
@ 2023-04-12 11:56 Uwe Kleine-König
2023-04-13 9:30 ` Thierry Reding
0 siblings, 1 reply; 6+ messages in thread
From: Uwe Kleine-König @ 2023-04-12 11:56 UTC (permalink / raw)
To: Thierry Reding; +Cc: linux-pwm, kernel
Since commit 5a7fbe452ad9 ("backlight: pwm_bl: Drop support for legacy PWM
probing") the last user of pwm_request() and pwm_free() is gone. So remove
these functions that were deprecated over 10 years ago in commit
8138d2ddbcca ("pwm: Add table-based lookup for static mappings").
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
Documentation/driver-api/pwm.rst | 13 ++++-----
drivers/pwm/core.c | 49 --------------------------------
include/linux/pwm.h | 13 ---------
3 files changed, 5 insertions(+), 70 deletions(-)
diff --git a/Documentation/driver-api/pwm.rst b/Documentation/driver-api/pwm.rst
index 8c71a2055d27..3fdc95f7a1d1 100644
--- a/Documentation/driver-api/pwm.rst
+++ b/Documentation/driver-api/pwm.rst
@@ -35,12 +35,9 @@ consumers to providers, as given in the following example::
Using PWMs
----------
-Legacy users can request a PWM device using pwm_request() and free it
-after usage with pwm_free().
-
-New users should use the pwm_get() function and pass to it the consumer
-device or a consumer name. pwm_put() is used to free the PWM device. Managed
-variants of the getter, devm_pwm_get() and devm_fwnode_pwm_get(), also exist.
+Consumers use the pwm_get() function and pass to it the consumer device or a
+consumer name. pwm_put() is used to free the PWM device. Managed variants of
+the getter, devm_pwm_get() and devm_fwnode_pwm_get(), also exist.
After being requested, a PWM has to be configured using::
@@ -165,8 +162,8 @@ consumers should implement it as described in the "Using PWMs" section.
Locking
-------
-The PWM core list manipulations are protected by a mutex, so pwm_request()
-and pwm_free() may not be called from an atomic context. Currently the
+The PWM core list manipulations are protected by a mutex, so pwm_get()
+and pwm_put() may not be called from an atomic context. Currently the
PWM core does not enforce any locking to pwm_enable(), pwm_disable() and
pwm_config(), so the calling context is currently driver specific. This
is an issue derived from the former barebone API and should be fixed soon.
diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
index e01147f66e15..c60a6d93d666 100644
--- a/drivers/pwm/core.c
+++ b/drivers/pwm/core.c
@@ -362,43 +362,6 @@ int devm_pwmchip_add(struct device *dev, struct pwm_chip *chip)
}
EXPORT_SYMBOL_GPL(devm_pwmchip_add);
-/**
- * pwm_request() - request a PWM device
- * @pwm: global PWM device index
- * @label: PWM device label
- *
- * This function is deprecated, use pwm_get() instead.
- *
- * Returns: A pointer to a PWM device or an ERR_PTR()-encoded error code on
- * failure.
- */
-struct pwm_device *pwm_request(int pwm, const char *label)
-{
- struct pwm_device *dev;
- int err;
-
- if (pwm < 0 || pwm >= MAX_PWMS)
- return ERR_PTR(-EINVAL);
-
- mutex_lock(&pwm_lock);
-
- dev = pwm_to_device(pwm);
- if (!dev) {
- dev = ERR_PTR(-EPROBE_DEFER);
- goto out;
- }
-
- err = pwm_device_request(dev, label);
- if (err < 0)
- dev = ERR_PTR(err);
-
-out:
- mutex_unlock(&pwm_lock);
-
- return dev;
-}
-EXPORT_SYMBOL_GPL(pwm_request);
-
/**
* pwm_request_from_chip() - request a PWM device relative to a PWM chip
* @chip: PWM chip
@@ -431,18 +394,6 @@ struct pwm_device *pwm_request_from_chip(struct pwm_chip *chip,
}
EXPORT_SYMBOL_GPL(pwm_request_from_chip);
-/**
- * pwm_free() - free a PWM device
- * @pwm: PWM device
- *
- * This function is deprecated, use pwm_put() instead.
- */
-void pwm_free(struct pwm_device *pwm)
-{
- pwm_put(pwm);
-}
-EXPORT_SYMBOL_GPL(pwm_free);
-
static void pwm_apply_state_debug(struct pwm_device *pwm,
const struct pwm_state *state)
{
diff --git a/include/linux/pwm.h b/include/linux/pwm.h
index 7b7b93b6fb81..04ae1d9073a7 100644
--- a/include/linux/pwm.h
+++ b/include/linux/pwm.h
@@ -309,8 +309,6 @@ struct pwm_chip {
#if IS_ENABLED(CONFIG_PWM)
/* PWM user APIs */
-struct pwm_device *pwm_request(int pwm_id, const char *label);
-void pwm_free(struct pwm_device *pwm);
int pwm_apply_state(struct pwm_device *pwm, const struct pwm_state *state);
int pwm_adjust_config(struct pwm_device *pwm);
@@ -410,17 +408,6 @@ struct pwm_device *devm_fwnode_pwm_get(struct device *dev,
struct fwnode_handle *fwnode,
const char *con_id);
#else
-static inline struct pwm_device *pwm_request(int pwm_id, const char *label)
-{
- might_sleep();
- return ERR_PTR(-ENODEV);
-}
-
-static inline void pwm_free(struct pwm_device *pwm)
-{
- might_sleep();
-}
-
static inline int pwm_apply_state(struct pwm_device *pwm,
const struct pwm_state *state)
{
base-commit: fe15c26ee26efa11741a7b632e9f23b01aca4cc6
--
2.39.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] pwm: Delete deprecated functions pwm_request() and pwm_free()
2023-04-12 11:56 [PATCH] pwm: Delete deprecated functions pwm_request() and pwm_free() Uwe Kleine-König
@ 2023-04-13 9:30 ` Thierry Reding
2023-04-13 9:32 ` Thierry Reding
0 siblings, 1 reply; 6+ messages in thread
From: Thierry Reding @ 2023-04-13 9:30 UTC (permalink / raw)
To: Uwe Kleine-König; +Cc: linux-pwm, kernel
[-- Attachment #1: Type: text/plain, Size: 889 bytes --]
On Wed, Apr 12, 2023 at 01:56:36PM +0200, Uwe Kleine-König wrote:
> Since commit 5a7fbe452ad9 ("backlight: pwm_bl: Drop support for legacy PWM
> probing") the last user of pwm_request() and pwm_free() is gone. So remove
> these functions that were deprecated over 10 years ago in commit
> 8138d2ddbcca ("pwm: Add table-based lookup for static mappings").
>
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
> Documentation/driver-api/pwm.rst | 13 ++++-----
> drivers/pwm/core.c | 49 --------------------------------
> include/linux/pwm.h | 13 ---------
> 3 files changed, 5 insertions(+), 70 deletions(-)
There seem to be two more occurrences of pwm_free() in
drivers/pwm/core.c, but I think they can trivially be replaced by
pwm_put(). I can do that while applying, but let me know if you don't
agree.
Thierry
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pwm: Delete deprecated functions pwm_request() and pwm_free()
2023-04-13 9:30 ` Thierry Reding
@ 2023-04-13 9:32 ` Thierry Reding
2023-04-13 9:34 ` Thierry Reding
0 siblings, 1 reply; 6+ messages in thread
From: Thierry Reding @ 2023-04-13 9:32 UTC (permalink / raw)
To: Uwe Kleine-König; +Cc: linux-pwm, kernel
[-- Attachment #1: Type: text/plain, Size: 1094 bytes --]
On Thu, Apr 13, 2023 at 11:30:48AM +0200, Thierry Reding wrote:
> On Wed, Apr 12, 2023 at 01:56:36PM +0200, Uwe Kleine-König wrote:
> > Since commit 5a7fbe452ad9 ("backlight: pwm_bl: Drop support for legacy PWM
> > probing") the last user of pwm_request() and pwm_free() is gone. So remove
> > these functions that were deprecated over 10 years ago in commit
> > 8138d2ddbcca ("pwm: Add table-based lookup for static mappings").
> >
> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> > ---
> > Documentation/driver-api/pwm.rst | 13 ++++-----
> > drivers/pwm/core.c | 49 --------------------------------
> > include/linux/pwm.h | 13 ---------
> > 3 files changed, 5 insertions(+), 70 deletions(-)
>
> There seem to be two more occurrences of pwm_free() in
> drivers/pwm/core.c, but I think they can trivially be replaced by
> pwm_put(). I can do that while applying, but let me know if you don't
> agree.
I also get warnings about pwm_to_device() now being unused, so I'll
remove that one along with these.
Thierry
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pwm: Delete deprecated functions pwm_request() and pwm_free()
2023-04-13 9:32 ` Thierry Reding
@ 2023-04-13 9:34 ` Thierry Reding
2023-04-13 11:38 ` Uwe Kleine-König
0 siblings, 1 reply; 6+ messages in thread
From: Thierry Reding @ 2023-04-13 9:34 UTC (permalink / raw)
To: Uwe Kleine-König; +Cc: linux-pwm, kernel
[-- Attachment #1: Type: text/plain, Size: 1324 bytes --]
On Thu, Apr 13, 2023 at 11:32:07AM +0200, Thierry Reding wrote:
> On Thu, Apr 13, 2023 at 11:30:48AM +0200, Thierry Reding wrote:
> > On Wed, Apr 12, 2023 at 01:56:36PM +0200, Uwe Kleine-König wrote:
> > > Since commit 5a7fbe452ad9 ("backlight: pwm_bl: Drop support for legacy PWM
> > > probing") the last user of pwm_request() and pwm_free() is gone. So remove
> > > these functions that were deprecated over 10 years ago in commit
> > > 8138d2ddbcca ("pwm: Add table-based lookup for static mappings").
> > >
> > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> > > ---
> > > Documentation/driver-api/pwm.rst | 13 ++++-----
> > > drivers/pwm/core.c | 49 --------------------------------
> > > include/linux/pwm.h | 13 ---------
> > > 3 files changed, 5 insertions(+), 70 deletions(-)
> >
> > There seem to be two more occurrences of pwm_free() in
> > drivers/pwm/core.c, but I think they can trivially be replaced by
> > pwm_put(). I can do that while applying, but let me know if you don't
> > agree.
>
> I also get warnings about pwm_to_device() now being unused, so I'll
> remove that one along with these.
With pwm_to_device() gone, there's now also no purpose in the pwm_tree
radix tree, so let me try to drop that as well.
Thierry
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pwm: Delete deprecated functions pwm_request() and pwm_free()
2023-04-13 9:34 ` Thierry Reding
@ 2023-04-13 11:38 ` Uwe Kleine-König
2023-04-14 10:43 ` Thierry Reding
0 siblings, 1 reply; 6+ messages in thread
From: Uwe Kleine-König @ 2023-04-13 11:38 UTC (permalink / raw)
To: Thierry Reding; +Cc: linux-pwm, kernel
[-- Attachment #1: Type: text/plain, Size: 1777 bytes --]
On Thu, Apr 13, 2023 at 11:34:44AM +0200, Thierry Reding wrote:
> On Thu, Apr 13, 2023 at 11:32:07AM +0200, Thierry Reding wrote:
> > On Thu, Apr 13, 2023 at 11:30:48AM +0200, Thierry Reding wrote:
> > > On Wed, Apr 12, 2023 at 01:56:36PM +0200, Uwe Kleine-König wrote:
> > > > Since commit 5a7fbe452ad9 ("backlight: pwm_bl: Drop support for legacy PWM
> > > > probing") the last user of pwm_request() and pwm_free() is gone. So remove
> > > > these functions that were deprecated over 10 years ago in commit
> > > > 8138d2ddbcca ("pwm: Add table-based lookup for static mappings").
> > > >
> > > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> > > > ---
> > > > Documentation/driver-api/pwm.rst | 13 ++++-----
> > > > drivers/pwm/core.c | 49 --------------------------------
> > > > include/linux/pwm.h | 13 ---------
> > > > 3 files changed, 5 insertions(+), 70 deletions(-)
> > >
> > > There seem to be two more occurrences of pwm_free() in
> > > drivers/pwm/core.c, but I think they can trivially be replaced by
> > > pwm_put(). I can do that while applying, but let me know if you don't
> > > agree.
> >
> > I also get warnings about pwm_to_device() now being unused, so I'll
> > remove that one along with these.
>
> With pwm_to_device() gone, there's now also no purpose in the pwm_tree
> radix tree, so let me try to drop that as well.
Huh, it seems I was too sloppy here. Thanks for cleaning up after me.
Feel free to grab authorship of your result, given that you seem to have
done more than me now.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | https://www.pengutronix.de/ |
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] pwm: Delete deprecated functions pwm_request() and pwm_free()
2023-04-13 11:38 ` Uwe Kleine-König
@ 2023-04-14 10:43 ` Thierry Reding
0 siblings, 0 replies; 6+ messages in thread
From: Thierry Reding @ 2023-04-14 10:43 UTC (permalink / raw)
To: Uwe Kleine-König; +Cc: linux-pwm, kernel
On Thu, Apr 13, 2023 at 01:38:29PM +0200, Uwe Kleine-König wrote:
> On Thu, Apr 13, 2023 at 11:34:44AM +0200, Thierry Reding wrote:
> > On Thu, Apr 13, 2023 at 11:32:07AM +0200, Thierry Reding wrote:
> > > On Thu, Apr 13, 2023 at 11:30:48AM +0200, Thierry Reding wrote:
> > > > On Wed, Apr 12, 2023 at 01:56:36PM +0200, Uwe Kleine-König wrote:
> > > > > Since commit 5a7fbe452ad9 ("backlight: pwm_bl: Drop support for legacy PWM
> > > > > probing") the last user of pwm_request() and pwm_free() is gone. So remove
> > > > > these functions that were deprecated over 10 years ago in commit
> > > > > 8138d2ddbcca ("pwm: Add table-based lookup for static mappings").
> > > > >
> > > > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> > > > > ---
> > > > > Documentation/driver-api/pwm.rst | 13 ++++-----
> > > > > drivers/pwm/core.c | 49 --------------------------------
> > > > > include/linux/pwm.h | 13 ---------
> > > > > 3 files changed, 5 insertions(+), 70 deletions(-)
> > > >
> > > > There seem to be two more occurrences of pwm_free() in
> > > > drivers/pwm/core.c, but I think they can trivially be replaced by
> > > > pwm_put(). I can do that while applying, but let me know if you don't
> > > > agree.
> > >
> > > I also get warnings about pwm_to_device() now being unused, so I'll
> > > remove that one along with these.
> >
> > With pwm_to_device() gone, there's now also no purpose in the pwm_tree
> > radix tree, so let me try to drop that as well.
>
> Huh, it seems I was too sloppy here. Thanks for cleaning up after me.
> Feel free to grab authorship of your result, given that you seem to have
> done more than me now.
I've applied this now, thanks.
Thierry
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-04-14 10:44 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-12 11:56 [PATCH] pwm: Delete deprecated functions pwm_request() and pwm_free() Uwe Kleine-König
2023-04-13 9:30 ` Thierry Reding
2023-04-13 9:32 ` Thierry Reding
2023-04-13 9:34 ` Thierry Reding
2023-04-13 11:38 ` Uwe Kleine-König
2023-04-14 10:43 ` Thierry Reding
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.