]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
gpio: siox: use new GPIO line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 25 Jun 2025 10:33:27 +0000 (12:33 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 2 Jul 2025 09:05:37 +0000 (11:05 +0200)
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Acked-by: Thorsten Scherer <t.scherer@eckelmann.de>
Link: https://lore.kernel.org/r/20250625-gpiochip-set-rv-gpio-round2-v1-4-bc110a3b52ff@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-siox.c

index 051bc99bdfb2aa3c8a382f773c5892fed6e0a8b3..95355dda621b40124f4702432565b7381c4e6686 100644 (file)
@@ -160,8 +160,8 @@ static int gpio_siox_get(struct gpio_chip *chip, unsigned int offset)
        return ret;
 }
 
-static void gpio_siox_set(struct gpio_chip *chip,
-                         unsigned int offset, int value)
+static int gpio_siox_set(struct gpio_chip *chip,
+                        unsigned int offset, int value)
 {
        struct gpio_siox_ddata *ddata = gpiochip_get_data(chip);
        u8 mask = 1 << (19 - offset);
@@ -174,6 +174,8 @@ static void gpio_siox_set(struct gpio_chip *chip,
                ddata->setdata[0] &= ~mask;
 
        mutex_unlock(&ddata->lock);
+
+       return 0;
 }
 
 static int gpio_siox_direction_input(struct gpio_chip *chip,
@@ -191,8 +193,7 @@ static int gpio_siox_direction_output(struct gpio_chip *chip,
        if (offset < 12)
                return -EINVAL;
 
-       gpio_siox_set(chip, offset, value);
-       return 0;
+       return gpio_siox_set(chip, offset, value);
 }
 
 static int gpio_siox_get_direction(struct gpio_chip *chip, unsigned int offset)
@@ -236,7 +237,7 @@ static int gpio_siox_probe(struct siox_device *sdevice)
        gc->parent = dev;
        gc->owner = THIS_MODULE;
        gc->get = gpio_siox_get;
-       gc->set = gpio_siox_set;
+       gc->set_rv = gpio_siox_set;
        gc->direction_input = gpio_siox_direction_input;
        gc->direction_output = gpio_siox_direction_output;
        gc->get_direction = gpio_siox_get_direction;