aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm8400.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/codecs/wm8400.c')
-rw-r--r--sound/soc/codecs/wm8400.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/sound/soc/codecs/wm8400.c b/sound/soc/codecs/wm8400.c
index 5d277a915f81..af6d227e67be 100644
--- a/sound/soc/codecs/wm8400.c
+++ b/sound/soc/codecs/wm8400.c
@@ -1373,7 +1373,7 @@ static int wm8400_codec_probe(struct snd_soc_codec *codec)
1373 codec->control_data = priv->wm8400 = wm8400; 1373 codec->control_data = priv->wm8400 = wm8400;
1374 priv->codec = codec; 1374 priv->codec = codec;
1375 1375
1376 ret = regulator_bulk_get(wm8400->dev, 1376 ret = devm_regulator_bulk_get(wm8400->dev,
1377 ARRAY_SIZE(power), &power[0]); 1377 ARRAY_SIZE(power), &power[0]);
1378 if (ret != 0) { 1378 if (ret != 0) {
1379 dev_err(codec->dev, "Failed to get regulators: %d\n", ret); 1379 dev_err(codec->dev, "Failed to get regulators: %d\n", ret);
@@ -1398,15 +1398,9 @@ static int wm8400_codec_probe(struct snd_soc_codec *codec)
1398 snd_soc_write(codec, WM8400_LEFT_OUTPUT_VOLUME, 0x50 | (1<<8)); 1398 snd_soc_write(codec, WM8400_LEFT_OUTPUT_VOLUME, 0x50 | (1<<8));
1399 snd_soc_write(codec, WM8400_RIGHT_OUTPUT_VOLUME, 0x50 | (1<<8)); 1399 snd_soc_write(codec, WM8400_RIGHT_OUTPUT_VOLUME, 0x50 | (1<<8));
1400 1400
1401 if (!schedule_work(&priv->work)) { 1401 if (!schedule_work(&priv->work))
1402 ret = -EINVAL; 1402 return -EINVAL;
1403 goto err_regulator;
1404 }
1405 return 0; 1403 return 0;
1406
1407err_regulator:
1408 regulator_bulk_free(ARRAY_SIZE(power), power);
1409 return ret;
1410} 1404}
1411 1405
1412static int wm8400_codec_remove(struct snd_soc_codec *codec) 1406static int wm8400_codec_remove(struct snd_soc_codec *codec)
@@ -1417,8 +1411,6 @@ static int wm8400_codec_remove(struct snd_soc_codec *codec)
1417 snd_soc_write(codec, WM8400_POWER_MANAGEMENT_1, 1411 snd_soc_write(codec, WM8400_POWER_MANAGEMENT_1,
1418 reg & (~WM8400_CODEC_ENA)); 1412 reg & (~WM8400_CODEC_ENA));
1419 1413
1420 regulator_bulk_free(ARRAY_SIZE(power), power);
1421
1422 return 0; 1414 return 0;
1423} 1415}
1424 1416
@@ -1439,13 +1431,13 @@ static struct snd_soc_codec_driver soc_codec_dev_wm8400 = {
1439 .num_dapm_routes = ARRAY_SIZE(wm8400_dapm_routes), 1431 .num_dapm_routes = ARRAY_SIZE(wm8400_dapm_routes),
1440}; 1432};
1441 1433
1442static int __devinit wm8400_probe(struct platform_device *pdev) 1434static int wm8400_probe(struct platform_device *pdev)
1443{ 1435{
1444 return snd_soc_register_codec(&pdev->dev, &soc_codec_dev_wm8400, 1436 return snd_soc_register_codec(&pdev->dev, &soc_codec_dev_wm8400,
1445 &wm8400_dai, 1); 1437 &wm8400_dai, 1);
1446} 1438}
1447 1439
1448static int __devexit wm8400_remove(struct platform_device *pdev) 1440static int wm8400_remove(struct platform_device *pdev)
1449{ 1441{
1450 snd_soc_unregister_codec(&pdev->dev); 1442 snd_soc_unregister_codec(&pdev->dev);
1451 return 0; 1443 return 0;
@@ -1457,7 +1449,7 @@ static struct platform_driver wm8400_codec_driver = {
1457 .owner = THIS_MODULE, 1449 .owner = THIS_MODULE,
1458 }, 1450 },
1459 .probe = wm8400_probe, 1451 .probe = wm8400_probe,
1460 .remove = __devexit_p(wm8400_remove), 1452 .remove = wm8400_remove,
1461}; 1453};
1462 1454
1463module_platform_driver(wm8400_codec_driver); 1455module_platform_driver(wm8400_codec_driver);