mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
gpio: remove legacy GPIO line value setter callbacks
With no more users of the legacy GPIO line value setters - .set() and .set_multiple() - we can now remove them from the kernel. Link: https://lore.kernel.org/r/20250725074651.14002-1-brgl@bgdev.pl Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
0074281bb6
commit
397a46c9aa
2 changed files with 6 additions and 28 deletions
|
@ -1037,11 +1037,6 @@ int gpiochip_add_data_with_key(struct gpio_chip *gc, void *data,
|
|||
int base = 0;
|
||||
int ret;
|
||||
|
||||
/* Only allow one set() and one set_multiple(). */
|
||||
if ((gc->set && gc->set_rv) ||
|
||||
(gc->set_multiple && gc->set_multiple_rv))
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* First: allocate and populate the internal stat container, and
|
||||
* set up the struct device.
|
||||
|
@ -2891,19 +2886,14 @@ static int gpiochip_set(struct gpio_chip *gc, unsigned int offset, int value)
|
|||
|
||||
lockdep_assert_held(&gc->gpiodev->srcu);
|
||||
|
||||
if (WARN_ON(unlikely(!gc->set && !gc->set_rv)))
|
||||
if (WARN_ON(unlikely(!gc->set_rv)))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (gc->set_rv) {
|
||||
ret = gc->set_rv(gc, offset, value);
|
||||
if (ret > 0)
|
||||
ret = -EBADE;
|
||||
ret = gc->set_rv(gc, offset, value);
|
||||
if (ret > 0)
|
||||
ret = -EBADE;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
gc->set(gc, offset, value);
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int gpiod_direction_output_raw_commit(struct gpio_desc *desc, int value)
|
||||
|
@ -2919,7 +2909,7 @@ static int gpiod_direction_output_raw_commit(struct gpio_desc *desc, int value)
|
|||
* output-only, but if there is then not even a .set() operation it
|
||||
* is pretty tricky to drive the output line.
|
||||
*/
|
||||
if (!guard.gc->set && !guard.gc->set_rv && !guard.gc->direction_output) {
|
||||
if (!guard.gc->set_rv && !guard.gc->direction_output) {
|
||||
gpiod_warn(desc,
|
||||
"%s: missing set() and direction_output() operations\n",
|
||||
__func__);
|
||||
|
@ -3673,11 +3663,6 @@ static int gpiochip_set_multiple(struct gpio_chip *gc,
|
|||
return ret;
|
||||
}
|
||||
|
||||
if (gc->set_multiple) {
|
||||
gc->set_multiple(gc, mask, bits);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* set outputs if the corresponding mask bit is set */
|
||||
for_each_set_bit(i, mask, gc->ngpio) {
|
||||
ret = gpiochip_set(gc, i, test_bit(i, bits));
|
||||
|
|
|
@ -347,8 +347,6 @@ struct gpio_irq_chip {
|
|||
* @get: returns value for signal "offset", 0=low, 1=high, or negative error
|
||||
* @get_multiple: reads values for multiple signals defined by "mask" and
|
||||
* stores them in "bits", returns 0 on success or negative error
|
||||
* @set: **DEPRECATED** - please use set_rv() instead
|
||||
* @set_multiple: **DEPRECATED** - please use set_multiple_rv() instead
|
||||
* @set_rv: assigns output value for signal "offset", returns 0 on success or
|
||||
* negative error value
|
||||
* @set_multiple_rv: assigns output values for multiple signals defined by
|
||||
|
@ -445,11 +443,6 @@ struct gpio_chip {
|
|||
int (*get_multiple)(struct gpio_chip *gc,
|
||||
unsigned long *mask,
|
||||
unsigned long *bits);
|
||||
void (*set)(struct gpio_chip *gc,
|
||||
unsigned int offset, int value);
|
||||
void (*set_multiple)(struct gpio_chip *gc,
|
||||
unsigned long *mask,
|
||||
unsigned long *bits);
|
||||
int (*set_rv)(struct gpio_chip *gc,
|
||||
unsigned int offset,
|
||||
int value);
|
||||
|
|
Loading…
Add table
Reference in a new issue