mirror of
https://github.com/torvalds/linux.git
synced 2026-06-09 23:23:53 +02:00
UPSTREAM: ASoC: da7219: Disable regulators on probe() failure
If codec probe() function fails after supplies have been enabled
it should really tidy up and disable them again. This patch updates
the probe function to do just that.
Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
(cherry picked from commit 9069bf9bc8)
Change-Id: I3eebc1ff3af1b4f07fd564cc5d054ab0d6c43ad0
Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
This commit is contained in:
parent
fac23581ff
commit
290fd86d8e
|
|
@ -1663,10 +1663,12 @@ static int da7219_probe(struct snd_soc_codec *codec)
|
|||
/* Check if MCLK provided */
|
||||
da7219->mclk = devm_clk_get(codec->dev, "mclk");
|
||||
if (IS_ERR(da7219->mclk)) {
|
||||
if (PTR_ERR(da7219->mclk) != -ENOENT)
|
||||
return PTR_ERR(da7219->mclk);
|
||||
else
|
||||
if (PTR_ERR(da7219->mclk) != -ENOENT) {
|
||||
ret = PTR_ERR(da7219->mclk);
|
||||
goto err_disable_reg;
|
||||
} else {
|
||||
da7219->mclk = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* Default PC counter to free-running */
|
||||
|
|
@ -1694,7 +1696,16 @@ static int da7219_probe(struct snd_soc_codec *codec)
|
|||
snd_soc_write(codec, DA7219_TONE_GEN_CYCLES, DA7219_BEEP_CYCLES_MASK);
|
||||
|
||||
/* Initialise AAD block */
|
||||
return da7219_aad_init(codec);
|
||||
ret = da7219_aad_init(codec);
|
||||
if (ret)
|
||||
goto err_disable_reg;
|
||||
|
||||
return 0;
|
||||
|
||||
err_disable_reg:
|
||||
regulator_bulk_disable(DA7219_NUM_SUPPLIES, da7219->supplies);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int da7219_remove(struct snd_soc_codec *codec)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user