mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-25 08:21:14 +00:00
45 lines
1.4 KiB
Diff
45 lines
1.4 KiB
Diff
|
From 9a536b0cb8f83bd979fe274ef0197ece12a3ed09 Mon Sep 17 00:00:00 2001
|
||
|
From: Matthias Reichl <hias@horus.com>
|
||
|
Date: Thu, 20 Feb 2020 21:29:56 +0100
|
||
|
Subject: [PATCH] ASoC: pcm512x: Fix unbalanced regulator enable call
|
||
|
in probe error path
|
||
|
|
||
|
commit ac0a68997935c4acb92eaae5ad8982e0bb432d56 upstream.
|
||
|
|
||
|
When we get a clock error during probe we have to call
|
||
|
regulator_bulk_disable before bailing out, otherwise we trigger
|
||
|
a warning in regulator_put.
|
||
|
|
||
|
Fix this by using "goto err" like in the error cases above.
|
||
|
|
||
|
Fixes: 5a3af1293194d ("ASoC: pcm512x: Add PCM512x driver")
|
||
|
Signed-off-by: Matthias Reichl <hias@horus.com>
|
||
|
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
|
||
|
Link: https://lore.kernel.org/r/20200220202956.29233-1-hias@horus.com
|
||
|
Signed-off-by: Mark Brown <broonie@kernel.org>
|
||
|
---
|
||
|
sound/soc/codecs/pcm512x.c | 8 +++++---
|
||
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
||
|
|
||
|
--- a/sound/soc/codecs/pcm512x.c
|
||
|
+++ b/sound/soc/codecs/pcm512x.c
|
||
|
@@ -1564,13 +1564,15 @@ int pcm512x_probe(struct device *dev, st
|
||
|
}
|
||
|
|
||
|
pcm512x->sclk = devm_clk_get(dev, NULL);
|
||
|
- if (PTR_ERR(pcm512x->sclk) == -EPROBE_DEFER)
|
||
|
- return -EPROBE_DEFER;
|
||
|
+ if (PTR_ERR(pcm512x->sclk) == -EPROBE_DEFER) {
|
||
|
+ ret = -EPROBE_DEFER;
|
||
|
+ goto err;
|
||
|
+ }
|
||
|
if (!IS_ERR(pcm512x->sclk)) {
|
||
|
ret = clk_prepare_enable(pcm512x->sclk);
|
||
|
if (ret != 0) {
|
||
|
dev_err(dev, "Failed to enable SCLK: %d\n", ret);
|
||
|
- return ret;
|
||
|
+ goto err;
|
||
|
}
|
||
|
}
|
||
|
|