summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/da7219.c
diff options
context:
space:
mode:
authorAdam Thomson <Adam.Thomson.Opensource@diasemi.com>2015-10-05 16:10:04 +0200
committerMark Brown <broonie@kernel.org>2015-10-05 16:59:16 +0200
commit4e929134eb8271abc9c52c371e056debfea6898b (patch)
treefb9ad4971b1f24b64fa5298892c1ffafa14cba8d /sound/soc/codecs/da7219.c
parentASoC: da7219: Add entry to cover DA7219 bindings document (diff)
downloadlinux-4e929134eb8271abc9c52c371e056debfea6898b.tar.xz
linux-4e929134eb8271abc9c52c371e056debfea6898b.zip
ASoC: da7219: Improve error handling for regulator supplies
Currently if bulk_enable() of supplies fails, the code still goes on to try and put the device into active state, and set expected IO voltage of the device. This doesn't really make sense so code now returns on bulk_enable() failure, with an error message. Also, to help with debug, failure to get supplies also provides an error message. Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/da7219.c')
-rw-r--r--sound/soc/codecs/da7219.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sound/soc/codecs/da7219.c b/sound/soc/codecs/da7219.c
index 76f8fc2c00fe..c86a83305fb7 100644
--- a/sound/soc/codecs/da7219.c
+++ b/sound/soc/codecs/da7219.c
@@ -1554,8 +1554,10 @@ static int da7219_handle_supplies(struct snd_soc_codec *codec)
ret = devm_regulator_bulk_get(codec->dev, DA7219_NUM_SUPPLIES,
da7219->supplies);
- if (ret)
+ if (ret) {
+ dev_err(codec->dev, "Failed to get supplies");
return ret;
+ }
/* Determine VDDIO voltage provided */
vddio = da7219->supplies[DA7219_SUPPLY_VDDIO].consumer;
@@ -1567,6 +1569,10 @@ static int da7219_handle_supplies(struct snd_soc_codec *codec)
/* Enable main supplies */
ret = regulator_bulk_enable(DA7219_NUM_SUPPLIES, da7219->supplies);
+ if (ret) {
+ dev_err(codec->dev, "Failed to enable supplies");
+ return ret;
+ }
/* Ensure device in active mode */
snd_soc_write(codec, DA7219_SYSTEM_ACTIVE, DA7219_SYSTEM_ACTIVE_MASK);
@@ -1574,7 +1580,7 @@ static int da7219_handle_supplies(struct snd_soc_codec *codec)
/* Update IO voltage level range */
snd_soc_write(codec, DA7219_IO_CTRL, io_voltage_lvl);
- return ret;
+ return 0;
}
static void da7219_handle_pdata(struct snd_soc_codec *codec)