aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabio Estevam <fabio.estevam@freescale.com>2014-04-24 13:13:08 -0400
committerMark Brown <broonie@linaro.org>2014-04-24 13:32:40 -0400
commit63e54cd9caa3ce03635810608519e2b37d8bc706 (patch)
treefab4af15d3dcb39c553659f56dd829a7e8e9d479
parentc9eaa447e77efe77b7fa4c953bd62de8297fd6c5 (diff)
ASoC: sgtl5000: Use devm_regulator_bulk_get()
Using devm_regulator_bulk_get() can make the code cleaner and smaller as we do not need to call regulator_bulk_free() in the error and remove paths. Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r--sound/soc/codecs/sgtl5000.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c
index d3ed1be5a186..75f820c58833 100644
--- a/sound/soc/codecs/sgtl5000.c
+++ b/sound/soc/codecs/sgtl5000.c
@@ -1322,7 +1322,7 @@ static int sgtl5000_enable_regulators(struct snd_soc_codec *codec)
1322 return ret; 1322 return ret;
1323 } 1323 }
1324 1324
1325 ret = regulator_bulk_get(codec->dev, ARRAY_SIZE(sgtl5000->supplies), 1325 ret = devm_regulator_bulk_get(codec->dev, ARRAY_SIZE(sgtl5000->supplies),
1326 sgtl5000->supplies); 1326 sgtl5000->supplies);
1327 if (ret) 1327 if (ret)
1328 goto err_ldo_remove; 1328 goto err_ldo_remove;
@@ -1330,16 +1330,13 @@ static int sgtl5000_enable_regulators(struct snd_soc_codec *codec)
1330 ret = regulator_bulk_enable(ARRAY_SIZE(sgtl5000->supplies), 1330 ret = regulator_bulk_enable(ARRAY_SIZE(sgtl5000->supplies),
1331 sgtl5000->supplies); 1331 sgtl5000->supplies);
1332 if (ret) 1332 if (ret)
1333 goto err_regulator_free; 1333 goto err_ldo_remove;
1334 1334
1335 /* wait for all power rails bring up */ 1335 /* wait for all power rails bring up */
1336 udelay(10); 1336 udelay(10);
1337 1337
1338 return 0; 1338 return 0;
1339 1339
1340err_regulator_free:
1341 regulator_bulk_free(ARRAY_SIZE(sgtl5000->supplies),
1342 sgtl5000->supplies);
1343err_ldo_remove: 1340err_ldo_remove:
1344 if (!external_vddd) 1341 if (!external_vddd)
1345 ldo_regulator_remove(codec); 1342 ldo_regulator_remove(codec);
@@ -1409,8 +1406,6 @@ static int sgtl5000_probe(struct snd_soc_codec *codec)
1409err: 1406err:
1410 regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies), 1407 regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies),
1411 sgtl5000->supplies); 1408 sgtl5000->supplies);
1412 regulator_bulk_free(ARRAY_SIZE(sgtl5000->supplies),
1413 sgtl5000->supplies);
1414 ldo_regulator_remove(codec); 1409 ldo_regulator_remove(codec);
1415 1410
1416 return ret; 1411 return ret;
@@ -1424,8 +1419,6 @@ static int sgtl5000_remove(struct snd_soc_codec *codec)
1424 1419
1425 regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies), 1420 regulator_bulk_disable(ARRAY_SIZE(sgtl5000->supplies),
1426 sgtl5000->supplies); 1421 sgtl5000->supplies);
1427 regulator_bulk_free(ARRAY_SIZE(sgtl5000->supplies),
1428 sgtl5000->supplies);
1429 ldo_regulator_remove(codec); 1422 ldo_regulator_remove(codec);
1430 1423
1431 return 0; 1424 return 0;