]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gpio: rcar: Remove checks for empty bankmasks
authorGeert Uytterhoeven <geert+renesas@glider.be>
Wed, 25 Jun 2025 08:05:46 +0000 (10:05 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Thu, 26 Jun 2025 08:52:04 +0000 (10:52 +0200)
The GPIO core never passes empty bankmasks to the callbacks for handling
multiple signals at once.  Remove the superfluous checks, and refactor
the code.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Link: https://lore.kernel.org/r/29fb200d3f92e79cdd5ce4048d2847c265f337b4.1750838486.git.geert+renesas@glider.be
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-rcar.c

index 18c965ee02c8d3686020f2070a8bd498c4298c4f..8416e0430887bd5e55ab7d4e924542d9cafcc0d1 100644 (file)
@@ -331,14 +331,11 @@ static int gpio_rcar_get(struct gpio_chip *chip, unsigned offset)
 static int gpio_rcar_get_multiple(struct gpio_chip *chip, unsigned long *mask,
                                  unsigned long *bits)
 {
+       u32 bankmask = mask[0] & GENMASK(chip->ngpio - 1, 0);
        struct gpio_rcar_priv *p = gpiochip_get_data(chip);
-       u32 bankmask, outputs, m, val = 0;
+       u32 outputs, m, val = 0;
        unsigned long flags;
 
-       bankmask = mask[0] & GENMASK(chip->ngpio - 1, 0);
-       if (!bankmask)
-               return 0;
-
        if (p->info.has_always_in) {
                bits[0] = gpio_rcar_read(p, INDT) & bankmask;
                return 0;
@@ -372,13 +369,10 @@ static void gpio_rcar_set(struct gpio_chip *chip, unsigned offset, int value)
 static void gpio_rcar_set_multiple(struct gpio_chip *chip, unsigned long *mask,
                                   unsigned long *bits)
 {
+       u32 bankmask = mask[0] & GENMASK(chip->ngpio - 1, 0);
        struct gpio_rcar_priv *p = gpiochip_get_data(chip);
        unsigned long flags;
-       u32 val, bankmask;
-
-       bankmask = mask[0] & GENMASK(chip->ngpio - 1, 0);
-       if (!bankmask)
-               return;
+       u32 val;
 
        raw_spin_lock_irqsave(&p->lock, flags);
        val = gpio_rcar_read(p, OUTDT);