mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 01:34:14 +08:00
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>
This commit is contained in:
parent
fdd50a8086
commit
9069bf9bc8
@ -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