]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ASoC: tlv320adcx140: Propagate error codes during probe
authorDimitrios Katsaros <patcherwork@gmail.com>
Tue, 13 Jan 2026 10:58:46 +0000 (11:58 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 14 Jan 2026 13:35:31 +0000 (13:35 +0000)
When scanning for the reset pin, we could get an -EPROBE_DEFER.
The driver would assume that no reset pin had been defined,
which would mean that the chip would never be powered.

Now we both respect any error we get from devm_gpiod_get_optional.
We also now properly report the missing GPIO definition when
'gpio_reset' is NULL.

Signed-off-by: Dimitrios Katsaros <patcherwork@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Link: https://patch.msgid.link/20260113-sound-soc-codecs-tvl320adcx140-v4-3-8f7ecec525c8@pengutronix.de
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/tlv320adcx140.c

index 3fb1b6251e6f8b361e8f82ce6381a7e8cfcd1935..58a6dfa228cc326d18b3c3f126732033749c8e49 100644 (file)
@@ -1154,6 +1154,9 @@ static int adcx140_i2c_probe(struct i2c_client *i2c)
        adcx140->gpio_reset = devm_gpiod_get_optional(adcx140->dev,
                                                      "reset", GPIOD_OUT_LOW);
        if (IS_ERR(adcx140->gpio_reset))
+               return dev_err_probe(&i2c->dev, PTR_ERR(adcx140->gpio_reset),
+                                    "Failed to get Reset GPIO\n");
+       if (!adcx140->gpio_reset)
                dev_info(&i2c->dev, "Reset GPIO not defined\n");
 
        adcx140->supply_areg = devm_regulator_get_optional(adcx140->dev,