pwm: Delete deprecated functions pwm_request() and pwm_free()
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Wed, 12 Apr 2023 11:56:36 +0000 (13:56 +0200)
committerThierry Reding <thierry.reding@gmail.com>
Thu, 13 Apr 2023 12:27:53 +0000 (14:27 +0200)
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>
[thierry.reding@gmail.com: clean up a bit after removal]
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Documentation/driver-api/pwm.rst
drivers/pwm/core.c
include/linux/pwm.h

index 8c71a20..3fdc95f 100644 (file)
@@ -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.
index 4747257..9ce85c6 100644 (file)
@@ -35,11 +35,6 @@ static LIST_HEAD(pwm_chips);
 static DECLARE_BITMAP(allocated_pwms, MAX_PWMS);
 static RADIX_TREE(pwm_tree, GFP_KERNEL);
 
-static struct pwm_device *pwm_to_device(unsigned int pwm)
-{
-       return radix_tree_lookup(&pwm_tree, pwm);
-}
-
 /* Called with pwm_lock held */
 static int alloc_pwms(unsigned int count)
 {
@@ -370,43 +365,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
  * @index: per-chip index of the PWM to request
@@ -438,18 +396,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)
 {
@@ -790,7 +736,7 @@ static struct pwm_device *of_pwm_get(struct device *dev, struct device_node *np,
        dl = pwm_device_link_add(dev, pwm);
        if (IS_ERR(dl)) {
                /* of_xlate ended up calling pwm_request_from_chip() */
-               pwm_free(pwm);
+               pwm_put(pwm);
                pwm = ERR_CAST(dl);
                goto put;
        }
@@ -1014,7 +960,7 @@ struct pwm_device *pwm_get(struct device *dev, const char *con_id)
 
        dl = pwm_device_link_add(dev, pwm);
        if (IS_ERR(dl)) {
-               pwm_free(pwm);
+               pwm_put(pwm);
                return ERR_CAST(dl);
        }
 
index 7b7b93b..04ae1d9 100644 (file)
@@ -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)
 {