aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/sgtl5000.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-01-12 11:00:30 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-01-12 11:00:30 -0500
commita429638cac1e5c656818a45aaff78df7b743004e (patch)
tree0465e0d7a431bff97a3dd5a1f91d9b30c69ae0d8 /sound/soc/codecs/sgtl5000.c
parent5cf9a4e69c1ff0ccdd1d2b7404f95c0531355274 (diff)
parent9e4ce164ee3a1d07580f017069c25d180b0aa785 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (526 commits) ASoC: twl6040 - Add method to query optimum PDM_DL1 gain ALSA: hda - Fix the lost power-setup of seconary pins after PM resume ALSA: usb-audio: add Yamaha MOX6/MOX8 support ALSA: virtuoso: add S/PDIF input support for all Xonars ALSA: ice1724 - Support for ooAoo SQ210a ALSA: ice1724 - Allow card info based on model only ALSA: ice1724 - Create capture pcm only for ADC-enabled configurations ALSA: hdspm - Provide unique driver id based on card serial ASoC: Dynamically allocate the rtd device for a non-empty release() ASoC: Fix recursive dependency due to select ATMEL_SSC in SND_ATMEL_SOC_SSC ALSA: hda - Fix the detection of "Loopback Mixing" control for VIA codecs ALSA: hda - Return the error from get_wcaps_type() for invalid NIDs ALSA: hda - Use auto-parser for HP laptops with cx20459 codec ALSA: asihpi - Fix potential Oops in snd_asihpi_cmode_info() ALSA: hdsp - Fix potential Oops in snd_hdsp_info_pref_sync_ref() ALSA: hda/cirrus - support for iMac12,2 model ASoC: cx20442: add bias control over a platform provided regulator ALSA: usb-audio - Avoid flood of frame-active debug messages ALSA: snd-usb-us122l: Delete calls to preempt_disable mfd: Put WM8994 into cache only mode when suspending ... Fix up trivial conflicts in: - arch/arm/mach-s3c64xx/mach-crag6410.c: renamed speyside_wm8962 to tobermory, added littlemill right next to it - drivers/base/regmap/{regcache.c,regmap.c}: duplicate diff that had already come in with other changes in the regmap tree
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 f6b6551940ab..d7bd91831611 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