aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/sgtl5000.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/codecs/sgtl5000.c')
-rw-r--r--sound/soc/codecs/sgtl5000.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c
index bbcf921166f..fc9b127206e 100644
--- a/sound/soc/codecs/sgtl5000.c
+++ b/sound/soc/codecs/sgtl5000.c
@@ -16,7 +16,6 @@
16#include <linux/pm.h> 16#include <linux/pm.h>
17#include <linux/i2c.h> 17#include <linux/i2c.h>
18#include <linux/clk.h> 18#include <linux/clk.h>
19#include <linux/platform_device.h>
20#include <linux/regulator/driver.h> 19#include <linux/regulator/driver.h>
21#include <linux/regulator/machine.h> 20#include <linux/regulator/machine.h>
22#include <linux/regulator/consumer.h> 21#include <linux/regulator/consumer.h>
@@ -923,7 +922,7 @@ static int sgtl5000_set_bias_level(struct snd_soc_codec *codec,
923 SNDRV_PCM_FMTBIT_S24_LE |\ 922 SNDRV_PCM_FMTBIT_S24_LE |\
924 SNDRV_PCM_FMTBIT_S32_LE) 923 SNDRV_PCM_FMTBIT_S32_LE)
925 924
926static struct snd_soc_dai_ops sgtl5000_ops = { 925static const struct snd_soc_dai_ops sgtl5000_ops = {
927 .hw_params = sgtl5000_pcm_hw_params, 926 .hw_params = sgtl5000_pcm_hw_params,
928 .digital_mute = sgtl5000_digital_mute, 927 .digital_mute = sgtl5000_digital_mute,
929 .set_fmt = sgtl5000_set_dai_fmt, 928 .set_fmt = sgtl5000_set_dai_fmt,
@@ -968,7 +967,7 @@ static int sgtl5000_volatile_register(struct snd_soc_codec *codec,
968} 967}
969 968
970#ifdef CONFIG_SUSPEND 969#ifdef CONFIG_SUSPEND
971static int sgtl5000_suspend(struct snd_soc_codec *codec, pm_message_t state) 970static int sgtl5000_suspend(struct snd_soc_codec *codec)
972{ 971{
973 sgtl5000_set_bias_level(codec, SND_SOC_BIAS_OFF); 972 sgtl5000_set_bias_level(codec, SND_SOC_BIAS_OFF);
974 973
@@ -1077,7 +1076,7 @@ static int sgtl5000_set_power_regs(struct snd_soc_codec *codec)
1077 /* according to datasheet, maximum voltage of supplies */ 1076 /* according to datasheet, maximum voltage of supplies */
1078 if (vdda > 3600 || vddio > 3600 || vddd > 1980) { 1077 if (vdda > 3600 || vddio > 3600 || vddd > 1980) {
1079 dev_err(codec->dev, 1078 dev_err(codec->dev,
1080 "exceed max voltage vdda %dmv vddio %dma vddd %dma\n", 1079 "exceed max voltage vdda %dmV vddio %dmV vddd %dmV\n",
1081 vdda, vddio, vddd); 1080 vdda, vddio, vddd);
1082 1081
1083 return -EINVAL; 1082 return -EINVAL;
@@ -1402,7 +1401,8 @@ static __devinit int sgtl5000_i2c_probe(struct i2c_client *client,
1402 struct sgtl5000_priv *sgtl5000; 1401 struct sgtl5000_priv *sgtl5000;
1403 int ret; 1402 int ret;
1404 1403
1405 sgtl5000 = kzalloc(sizeof(struct sgtl5000_priv), GFP_KERNEL); 1404 sgtl5000 = devm_kzalloc(&client->dev, sizeof(struct sgtl5000_priv),
1405 GFP_KERNEL);
1406 if (!sgtl5000) 1406 if (!sgtl5000)
1407 return -ENOMEM; 1407 return -ENOMEM;
1408 1408
@@ -1410,22 +1410,13 @@ static __devinit int sgtl5000_i2c_probe(struct i2c_client *client,
1410 1410
1411 ret = snd_soc_register_codec(&client->dev, 1411 ret = snd_soc_register_codec(&client->dev,
1412 &sgtl5000_driver, &sgtl5000_dai, 1); 1412 &sgtl5000_driver, &sgtl5000_dai, 1);
1413 if (ret) { 1413 return ret;
1414 dev_err(&client->dev, "Failed to register codec: %d\n", ret);
1415 kfree(sgtl5000);
1416 return ret;
1417 }
1418
1419 return 0;
1420} 1414}
1421 1415
1422static __devexit int sgtl5000_i2c_remove(struct i2c_client *client) 1416static __devexit int sgtl5000_i2c_remove(struct i2c_client *client)
1423{ 1417{
1424 struct sgtl5000_priv *sgtl5000 = i2c_get_clientdata(client);
1425
1426 snd_soc_unregister_codec(&client->dev); 1418 snd_soc_unregister_codec(&client->dev);
1427 1419
1428 kfree(sgtl5000);
1429 return 0; 1420 return 0;
1430} 1421}
1431 1422