summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabio Estevam <fabio.estevam@nxp.com>2016-03-28 13:31:18 +0200
committerMark Brown <broonie@kernel.org>2016-03-29 19:02:24 +0200
commit65147846796bd443972d9055b3b4c1339e15d53a (patch)
treea0e5a44f67ff8ac3d3e74562f9f11d5703073202
parentLinux 4.6-rc1 (diff)
downloadlinux-65147846796bd443972d9055b3b4c1339e15d53a.tar.xz
linux-65147846796bd443972d9055b3b4c1339e15d53a.zip
ASoC: wm8962: Disable clock if wm8962_runtime_resume() fails
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>
-rw-r--r--sound/soc/codecs/wm8962.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index 88223608a33f..f3f71ba0ed12 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -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)