diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-04-23 05:37:17 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-04-23 05:37:17 -0400 |
commit | 049da6393fb30b62e418beb59a74dfcad513fc6d (patch) | |
tree | cf0a18f029e87809b6972ad50813d7ccb7f89049 /sound/soc/codecs | |
parent | 2d7e71fa231035d69faffbfe506ef23638385994 (diff) | |
parent | 19ab054df82dd096981b0d2365ab0be28815dc49 (diff) |
Merge branch 'for-2.6.30' into for-2.6.31
Diffstat (limited to 'sound/soc/codecs')
-rw-r--r-- | sound/soc/codecs/Makefile | 1 | ||||
-rw-r--r-- | sound/soc/codecs/wm8580.c | 16 | ||||
-rw-r--r-- | sound/soc/codecs/wm9705.c | 2 |
3 files changed, 11 insertions, 8 deletions
diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile index d8e15a47711e..811696861d31 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile | |||
@@ -60,7 +60,6 @@ obj-$(CONFIG_SND_SOC_WM8971) += snd-soc-wm8971.o | |||
60 | obj-$(CONFIG_SND_SOC_WM8960) += snd-soc-wm8960.o | 60 | obj-$(CONFIG_SND_SOC_WM8960) += snd-soc-wm8960.o |
61 | obj-$(CONFIG_SND_SOC_WM8988) += snd-soc-wm8988.o | 61 | obj-$(CONFIG_SND_SOC_WM8988) += snd-soc-wm8988.o |
62 | obj-$(CONFIG_SND_SOC_WM8990) += snd-soc-wm8990.o | 62 | obj-$(CONFIG_SND_SOC_WM8990) += snd-soc-wm8990.o |
63 | obj-$(CONFIG_SND_SOC_WM8991) += snd-soc-wm8991.o | ||
64 | obj-$(CONFIG_SND_SOC_WM9705) += snd-soc-wm9705.o | 63 | obj-$(CONFIG_SND_SOC_WM9705) += snd-soc-wm9705.o |
65 | obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o | 64 | obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o |
66 | obj-$(CONFIG_SND_SOC_WM9713) += snd-soc-wm9713.o | 65 | obj-$(CONFIG_SND_SOC_WM9713) += snd-soc-wm9713.o |
diff --git a/sound/soc/codecs/wm8580.c b/sound/soc/codecs/wm8580.c index 442ea6f160fc..9f6be3d31ac0 100644 --- a/sound/soc/codecs/wm8580.c +++ b/sound/soc/codecs/wm8580.c | |||
@@ -268,9 +268,11 @@ static const DECLARE_TLV_DB_SCALE(dac_tlv, -12750, 50, 1); | |||
268 | static int wm8580_out_vu(struct snd_kcontrol *kcontrol, | 268 | static int wm8580_out_vu(struct snd_kcontrol *kcontrol, |
269 | struct snd_ctl_elem_value *ucontrol) | 269 | struct snd_ctl_elem_value *ucontrol) |
270 | { | 270 | { |
271 | struct soc_mixer_control *mc = | ||
272 | (struct soc_mixer_control *)kcontrol->private_value; | ||
271 | struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); | 273 | struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); |
272 | int reg = kcontrol->private_value & 0xff; | 274 | unsigned int reg = mc->reg; |
273 | int reg2 = (kcontrol->private_value >> 24) & 0xff; | 275 | unsigned int reg2 = mc->rreg; |
274 | int ret; | 276 | int ret; |
275 | u16 val; | 277 | u16 val; |
276 | 278 | ||
@@ -292,15 +294,17 @@ static int wm8580_out_vu(struct snd_kcontrol *kcontrol, | |||
292 | return 0; | 294 | return 0; |
293 | } | 295 | } |
294 | 296 | ||
295 | #define SOC_WM8580_OUT_DOUBLE_R_TLV(xname, reg_left, reg_right, shift, max, invert, tlv_array) \ | 297 | #define SOC_WM8580_OUT_DOUBLE_R_TLV(xname, reg_left, reg_right, xshift, xmax, \ |
298 | xinvert, tlv_array) \ | ||
296 | { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \ | 299 | { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), \ |
297 | .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |\ | 300 | .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |\ |
298 | SNDRV_CTL_ELEM_ACCESS_READWRITE, \ | 301 | SNDRV_CTL_ELEM_ACCESS_READWRITE, \ |
299 | .tlv.p = (tlv_array), \ | 302 | .tlv.p = (tlv_array), \ |
300 | .info = snd_soc_info_volsw_2r, \ | 303 | .info = snd_soc_info_volsw_2r, \ |
301 | .get = snd_soc_get_volsw_2r, .put = wm8580_out_vu, \ | 304 | .get = snd_soc_get_volsw_2r, .put = wm8580_out_vu, \ |
302 | .private_value = (reg_left) | ((shift) << 8) | \ | 305 | .private_value = (unsigned long)&(struct soc_mixer_control) \ |
303 | ((max) << 12) | ((invert) << 20) | ((reg_right) << 24) } | 306 | {.reg = reg_left, .rreg = reg_right, .shift = xshift, \ |
307 | .max = xmax, .invert = xinvert} } | ||
304 | 308 | ||
305 | static const struct snd_kcontrol_new wm8580_snd_controls[] = { | 309 | static const struct snd_kcontrol_new wm8580_snd_controls[] = { |
306 | SOC_WM8580_OUT_DOUBLE_R_TLV("DAC1 Playback Volume", | 310 | SOC_WM8580_OUT_DOUBLE_R_TLV("DAC1 Playback Volume", |
@@ -522,7 +526,7 @@ static int wm8580_set_dai_pll(struct snd_soc_dai *codec_dai, | |||
522 | reg = wm8580_read(codec, WM8580_PLLA4 + offset); | 526 | reg = wm8580_read(codec, WM8580_PLLA4 + offset); |
523 | reg &= ~0x3f; | 527 | reg &= ~0x3f; |
524 | reg |= pll_div.prescale | pll_div.postscale << 1 | | 528 | reg |= pll_div.prescale | pll_div.postscale << 1 | |
525 | pll_div.freqmode << 4; | 529 | pll_div.freqmode << 3; |
526 | 530 | ||
527 | wm8580_write(codec, WM8580_PLLA4 + offset, reg); | 531 | wm8580_write(codec, WM8580_PLLA4 + offset, reg); |
528 | 532 | ||
diff --git a/sound/soc/codecs/wm9705.c b/sound/soc/codecs/wm9705.c index 6e23a81dba78..c2d1a7a18fa3 100644 --- a/sound/soc/codecs/wm9705.c +++ b/sound/soc/codecs/wm9705.c | |||
@@ -318,7 +318,7 @@ static int wm9705_reset(struct snd_soc_codec *codec) | |||
318 | } | 318 | } |
319 | 319 | ||
320 | #ifdef CONFIG_PM | 320 | #ifdef CONFIG_PM |
321 | static int wm9705_soc_suspend(struct platform_device *pdev) | 321 | static int wm9705_soc_suspend(struct platform_device *pdev, pm_message_t msg) |
322 | { | 322 | { |
323 | struct snd_soc_device *socdev = platform_get_drvdata(pdev); | 323 | struct snd_soc_device *socdev = platform_get_drvdata(pdev); |
324 | struct snd_soc_codec *codec = socdev->card->codec; | 324 | struct snd_soc_codec *codec = socdev->card->codec; |