]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
gpio: xilinx: convert set_multiple() to the new API as well
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Thu, 17 Jul 2025 13:11:15 +0000 (15:11 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Fri, 18 Jul 2025 07:35:58 +0000 (09:35 +0200)
The patch converting the driver to using new GPIO line value setters
only converted the set() callback and missed set_multiple(). Fix it now.

Fixes: 1919ea19a4ff ("gpio: xilinx: use new GPIO line value setter callbacks")
Acked-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20250717131116.53878-1-brgl@bgdev.pl
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-xilinx.c

index aaaa741179805d54e1cd1425579eb52a3579d6e5..36d91cacc2d96ad1baa0ff5f03230d45819a28ce 100644 (file)
@@ -175,8 +175,8 @@ static int xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
  * This function writes the specified values into the specified signals of the
  * GPIO devices.
  */
-static void xgpio_set_multiple(struct gpio_chip *gc, unsigned long *mask,
-                              unsigned long *bits)
+static int xgpio_set_multiple(struct gpio_chip *gc, unsigned long *mask,
+                             unsigned long *bits)
 {
        DECLARE_BITMAP(hw_mask, 64);
        DECLARE_BITMAP(hw_bits, 64);
@@ -196,6 +196,8 @@ static void xgpio_set_multiple(struct gpio_chip *gc, unsigned long *mask,
        bitmap_copy(chip->state, state, 64);
 
        raw_spin_unlock_irqrestore(&chip->gpio_lock, flags);
+
+       return 0;
 }
 
 /**
@@ -605,7 +607,7 @@ static int xgpio_probe(struct platform_device *pdev)
        chip->gc.set_rv = xgpio_set;
        chip->gc.request = xgpio_request;
        chip->gc.free = xgpio_free;
-       chip->gc.set_multiple = xgpio_set_multiple;
+       chip->gc.set_multiple_rv = xgpio_set_multiple;
 
        chip->gc.label = dev_name(dev);