]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ASoC: codecs: zl38060: use new GPIO line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 8 Apr 2025 07:38:29 +0000 (09:38 +0200)
committerMark Brown <broonie@kernel.org>
Sun, 13 Apr 2025 19:23:23 +0000 (20:23 +0100)
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://patch.msgid.link/20250408-gpiochip-set-rv-sound-v1-11-dd54b6ca1ef9@linaro.org
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/zl38060.c

index 28c92d90299e9e66490b978911a6f6e4e0f29fc4..180d45a349ac4692a252f02642d71edd76c610cb 100644 (file)
@@ -387,12 +387,12 @@ static const struct snd_soc_component_driver zl38_component_dev = {
        .endianness             = 1,
 };
 
-static void chip_gpio_set(struct gpio_chip *c, unsigned int offset, int val)
+static int chip_gpio_set(struct gpio_chip *c, unsigned int offset, int val)
 {
        struct regmap *regmap = gpiochip_get_data(c);
        unsigned int mask = BIT(offset);
 
-       regmap_update_bits(regmap, REG_GPIO_DAT, mask, val ? mask : 0);
+       return regmap_update_bits(regmap, REG_GPIO_DAT, mask, val ? mask : 0);
 }
 
 static int chip_gpio_get(struct gpio_chip *c, unsigned int offset)
@@ -422,8 +422,12 @@ chip_direction_output(struct gpio_chip *c, unsigned int offset, int val)
 {
        struct regmap *regmap = gpiochip_get_data(c);
        unsigned int mask = BIT(offset);
+       int ret;
+
+       ret = chip_gpio_set(c, offset, val);
+       if (ret)
+               return ret;
 
-       chip_gpio_set(c, offset, val);
        return regmap_update_bits(regmap, REG_GPIO_DIR, mask, mask);
 }
 
@@ -436,7 +440,7 @@ static const struct gpio_chip template_chip = {
        .direction_input = chip_direction_input,
        .direction_output = chip_direction_output,
        .get = chip_gpio_get,
-       .set = chip_gpio_set,
+       .set_rv = chip_gpio_set,
 
        .can_sleep = true,
 };