mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
pwm: Delete deprecated functions pwm_request() and pwm_free()
Since commit5a7fbe452a
("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 commit8138d2ddbc
("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>
This commit is contained in:
committed by
Thierry Reding
parent
9e4fa80ab7
commit
0af4d704ba
@@ -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.
|
|||||||
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);
|
|||||||
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)
|
|||||||
}
|
}
|
||||||
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,
|
|||||||
}
|
}
|
||||||
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,
|
|||||||
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)
|
|||||||
|
|
||||||
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 {
|
|||||||
|
|
||||||
#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,
|
|||||||
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)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user