ASoC: wm8962: Disable clock if wm8962_runtime_resume() fails
authorFabio Estevam <fabio.estevam@nxp.com>
Mon, 28 Mar 2016 11:31:18 +0000 (08:31 -0300)
committerMark Brown <broonie@kernel.org>
Tue, 29 Mar 2016 17:02:24 +0000 (10:02 -0700)
When regulator_bulk_enable() fails inside wm8962_runtime_resume(),
we should disable the previously enabled clock.

Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wm8962.c

index 88223608a33f270adbcbec29e69385aba8b147f2..f3f71ba0ed12d37003364d4b354b2c17228d410c 100644 (file)
@@ -3800,7 +3800,7 @@ static int wm8962_runtime_resume(struct device *dev)
        if (ret != 0) {
                dev_err(dev,
                        "Failed to enable supplies: %d\n", ret);
-               return ret;
+               goto disable_clock;
        }
 
        regcache_cache_only(wm8962->regmap, false);
@@ -3838,6 +3838,10 @@ static int wm8962_runtime_resume(struct device *dev)
        msleep(5);
 
        return 0;
+
+disable_clock:
+       clk_disable_unprepare(wm8962->pdata.mclk);
+       return ret;
 }
 
 static int wm8962_runtime_suspend(struct device *dev)