pinctrl: aw9523: Always try both ports in aw9523_gpio_set_multiple()
authorAndy Shevchenko <andy.shevchenko@gmail.com>
Fri, 29 Mar 2024 10:55:17 +0000 (12:55 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 4 Apr 2024 11:16:46 +0000 (13:16 +0200)
The ports are equivalent from the user's point of view. Don't limit
trying them both if writing to one fails.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Message-ID: <20240329105634.712457-4-andy.shevchenko@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-aw9523.c

index 65d523697b7311751188586041767987bfcdbefb..d93640a02d1d3ff12e35cb759175c99523f6fe22 100644 (file)
@@ -653,7 +653,7 @@ static void aw9523_gpio_set_multiple(struct gpio_chip *chip,
        struct aw9523 *awi = gpiochip_get_data(chip);
        u8 mask_lo, mask_hi, bits_lo, bits_hi;
        unsigned int reg;
-       int ret = 0;
+       int ret;
 
        mask_lo = *mask & U8_MAX;
        mask_hi = (*mask >> 8) & U8_MAX;
@@ -663,10 +663,8 @@ static void aw9523_gpio_set_multiple(struct gpio_chip *chip,
                bits_hi = (*bits >> 8) & U8_MAX;
 
                ret = regmap_write_bits(awi->regmap, reg, mask_hi, bits_hi);
-               if (ret) {
+               if (ret)
                        dev_warn(awi->dev, "Cannot write port1 out level\n");
-                       goto out;
-               }
        }
        if (mask_lo) {
                reg = AW9523_REG_OUT_STATE(0);
@@ -675,7 +673,6 @@ static void aw9523_gpio_set_multiple(struct gpio_chip *chip,
                if (ret)
                        dev_warn(awi->dev, "Cannot write port0 out level\n");
        }
-out:
        mutex_unlock(&awi->i2c_lock);
 }