Commit 0af4d704 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Thierry Reding

pwm: Delete deprecated functions pwm_request() and pwm_free()

Since commit 5a7fbe45 ("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
8138d2dd ("pwm: Add table-based lookup for static mappings").
Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
[thierry.reding@gmail.com: clean up a bit after removal]
Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
parent 9e4fa80a
...@@ -35,12 +35,9 @@ consumers to providers, as given in the following example:: ...@@ -35,12 +35,9 @@ consumers to providers, as given in the following example::
Using PWMs Using PWMs
---------- ----------
Legacy users can request a PWM device using pwm_request() and free it Consumers use the pwm_get() function and pass to it the consumer device or a
after usage with pwm_free(). 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.
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.
After being requested, a PWM has to be configured using:: 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. ...@@ -165,8 +162,8 @@ consumers should implement it as described in the "Using PWMs" section.
Locking Locking
------- -------
The PWM core list manipulations are protected by a mutex, so pwm_request() The PWM core list manipulations are protected by a mutex, so pwm_get()
and pwm_free() may not be called from an atomic context. Currently the 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 core does not enforce any locking to pwm_enable(), pwm_disable() and
pwm_config(), so the calling context is currently driver specific. This 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. is an issue derived from the former barebone API and should be fixed soon.
......
...@@ -35,11 +35,6 @@ static LIST_HEAD(pwm_chips); ...@@ -35,11 +35,6 @@ static LIST_HEAD(pwm_chips);
static DECLARE_BITMAP(allocated_pwms, MAX_PWMS); static DECLARE_BITMAP(allocated_pwms, MAX_PWMS);
static RADIX_TREE(pwm_tree, GFP_KERNEL); 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 */ /* Called with pwm_lock held */
static int alloc_pwms(unsigned int count) static int alloc_pwms(unsigned int count)
{ {
...@@ -369,43 +364,6 @@ int devm_pwmchip_add(struct device *dev, struct pwm_chip *chip) ...@@ -369,43 +364,6 @@ int devm_pwmchip_add(struct device *dev, struct pwm_chip *chip)
} }
EXPORT_SYMBOL_GPL(devm_pwmchip_add); 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 * pwm_request_from_chip() - request a PWM device relative to a PWM chip
* @chip: PWM chip * @chip: PWM chip
...@@ -438,18 +396,6 @@ struct pwm_device *pwm_request_from_chip(struct pwm_chip *chip, ...@@ -438,18 +396,6 @@ struct pwm_device *pwm_request_from_chip(struct pwm_chip *chip,
} }
EXPORT_SYMBOL_GPL(pwm_request_from_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, static void pwm_apply_state_debug(struct pwm_device *pwm,
const struct pwm_state *state) const struct pwm_state *state)
{ {
...@@ -790,7 +736,7 @@ static struct pwm_device *of_pwm_get(struct device *dev, struct device_node *np, ...@@ -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); dl = pwm_device_link_add(dev, pwm);
if (IS_ERR(dl)) { if (IS_ERR(dl)) {
/* of_xlate ended up calling pwm_request_from_chip() */ /* of_xlate ended up calling pwm_request_from_chip() */
pwm_free(pwm); pwm_put(pwm);
pwm = ERR_CAST(dl); pwm = ERR_CAST(dl);
goto put; goto put;
} }
...@@ -1014,7 +960,7 @@ struct pwm_device *pwm_get(struct device *dev, const char *con_id) ...@@ -1014,7 +960,7 @@ struct pwm_device *pwm_get(struct device *dev, const char *con_id)
dl = pwm_device_link_add(dev, pwm); dl = pwm_device_link_add(dev, pwm);
if (IS_ERR(dl)) { if (IS_ERR(dl)) {
pwm_free(pwm); pwm_put(pwm);
return ERR_CAST(dl); return ERR_CAST(dl);
} }
......
...@@ -309,8 +309,6 @@ struct pwm_chip { ...@@ -309,8 +309,6 @@ struct pwm_chip {
#if IS_ENABLED(CONFIG_PWM) #if IS_ENABLED(CONFIG_PWM)
/* PWM user APIs */ /* 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_apply_state(struct pwm_device *pwm, const struct pwm_state *state);
int pwm_adjust_config(struct pwm_device *pwm); int pwm_adjust_config(struct pwm_device *pwm);
...@@ -410,17 +408,6 @@ struct pwm_device *devm_fwnode_pwm_get(struct device *dev, ...@@ -410,17 +408,6 @@ struct pwm_device *devm_fwnode_pwm_get(struct device *dev,
struct fwnode_handle *fwnode, struct fwnode_handle *fwnode,
const char *con_id); const char *con_id);
#else #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, static inline int pwm_apply_state(struct pwm_device *pwm,
const struct pwm_state *state) const struct pwm_state *state)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment