diff options
author | Matthias Reichl <hias@horus.com> | 2020-02-20 21:29:56 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2020-03-11 07:51:18 +0100 |
commit | 73487df565ceaf21c3ca5a0563748681b26cfcb9 (patch) | |
tree | e7d0119ed6b4503b36bda5cbb67a65527fb6931e /sound/soc | |
parent | 2317e3bb09143722434abbf365ef1c73d9bac33d (diff) | |
download | linux-stable-73487df565ceaf21c3ca5a0563748681b26cfcb9.tar.gz linux-stable-73487df565ceaf21c3ca5a0563748681b26cfcb9.tar.bz2 linux-stable-73487df565ceaf21c3ca5a0563748681b26cfcb9.zip |
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/codecs/pcm512x.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sound/soc/codecs/pcm512x.c b/sound/soc/codecs/pcm512x.c index 047c48953a20..1a90732e7621 100644 --- a/sound/soc/codecs/pcm512x.c +++ b/sound/soc/codecs/pcm512x.c @@ -1439,13 +1439,15 @@ int pcm512x_probe(struct device *dev, struct regmap *regmap) } 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; } } |