]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
ASoC: codec: tlv320aic32x4: fix missing aic32x4_disable_regulators() in error path
authorMatthias Schiffer <matthias.schiffer@ew.tq-group.com>
Wed, 2 Sep 2020 13:30:42 +0000 (15:30 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 17 Sep 2020 16:40:07 +0000 (17:40 +0100)
The regulators need to be disabled in the aic32x4_register_clocks()
failure case as well.

Fixes: 9d4befff5a95 ("ASoC: codec: tlv3204: Moving GPIO reset and add ADC reset")
Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
Link: https://lore.kernel.org/r/20200902133043.19504-1-matthias.schiffer@ew.tq-group.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/tlv320aic32x4.c

index 8dcea566b3757360b1a236e46c68ffdc806b7633..a45fb496082cf04326b8ca7ed4aea4deb1a0cb18 100644 (file)
@@ -1230,8 +1230,7 @@ int aic32x4_probe(struct device *dev, struct regmap *regmap)
                        &soc_component_dev_aic32x4, &aic32x4_dai, 1);
        if (ret) {
                dev_err(dev, "Failed to register component\n");
-               aic32x4_disable_regulators(aic32x4);
-               return ret;
+               goto err_disable_regulators;
        }
 
        if (gpio_is_valid(aic32x4->rstn_gpio)) {
@@ -1242,9 +1241,14 @@ int aic32x4_probe(struct device *dev, struct regmap *regmap)
 
        ret = aic32x4_register_clocks(dev, aic32x4->mclk_name);
        if (ret)
-               return ret;
+               goto err_disable_regulators;
 
        return 0;
+
+err_disable_regulators:
+       aic32x4_disable_regulators(aic32x4);
+
+       return ret;
 }
 EXPORT_SYMBOL(aic32x4_probe);