Merge branch 'fix/asoc' into for-linus

+19 -11
+4 -3
MAINTAINERS
··· 6325 F: drivers/input/touchscreen/*wm97* 6326 F: include/linux/wm97xx.h 6327 6328 - WOLFSON MICROELECTRONICS PMIC DRIVERS 6329 M: Mark Brown <broonie@opensource.wolfsonmicro.com> 6330 T: git git://opensource.wolfsonmicro.com/linux-2.6-audioplus 6331 W: http://opensource.wolfsonmicro.com/node/8 6332 S: Supported ··· 6342 F: include/linux/mfd/wm831x/ 6343 F: include/linux/mfd/wm8350/ 6344 F: include/linux/mfd/wm8400* 6345 - F: sound/soc/codecs/wm8350.* 6346 - F: sound/soc/codecs/wm8400.* 6347 6348 X.25 NETWORK LAYER 6349 M: Andrew Hendry <andrew.hendry@gmail.com>
··· 6325 F: drivers/input/touchscreen/*wm97* 6326 F: include/linux/wm97xx.h 6327 6328 + WOLFSON MICROELECTRONICS DRIVERS 6329 M: Mark Brown <broonie@opensource.wolfsonmicro.com> 6330 + M: Ian Lartey <ian@opensource.wolfsonmicro.com> 6331 T: git git://opensource.wolfsonmicro.com/linux-2.6-audioplus 6332 W: http://opensource.wolfsonmicro.com/node/8 6333 S: Supported ··· 6341 F: include/linux/mfd/wm831x/ 6342 F: include/linux/mfd/wm8350/ 6343 F: include/linux/mfd/wm8400* 6344 + F: include/sound/wm????.h 6345 + F: sound/soc/codecs/wm* 6346 6347 X.25 NETWORK LAYER 6348 M: Andrew Hendry <andrew.hendry@gmail.com>
+15 -8
sound/soc/codecs/wm8994.c
··· 95 96 struct wm8994_micdet micdet[2]; 97 98 struct wm8994_pdata *pdata; 99 }; 100 ··· 3071 static int wm8994_set_bias_level(struct snd_soc_codec *codec, 3072 enum snd_soc_bias_level level) 3073 { 3074 switch (level) { 3075 case SND_SOC_BIAS_ON: 3076 break; ··· 3085 3086 case SND_SOC_BIAS_STANDBY: 3087 if (codec->bias_level == SND_SOC_BIAS_OFF) { 3088 - /* Tweak DC servo configuration for improved 3089 - * performance. */ 3090 - snd_soc_write(codec, 0x102, 0x3); 3091 - snd_soc_write(codec, 0x56, 0x3); 3092 - snd_soc_write(codec, 0x102, 0); 3093 3094 /* Discharge LINEOUT1 & 2 */ 3095 snd_soc_update_bits(codec, WM8994_ANTIPOP_1, ··· 3927 struct wm8994_priv *wm8994; 3928 struct snd_soc_codec *codec; 3929 int i; 3930 - u16 rev; 3931 3932 if (wm8994_codec) { 3933 dev_err(&pdev->dev, "Another WM8994 is registered\n"); ··· 3980 wm8994->reg_cache[i] = 0; 3981 3982 /* Set revision-specific configuration */ 3983 - rev = snd_soc_read(codec, WM8994_CHIP_REVISION); 3984 - switch (rev) { 3985 case 2: 3986 case 3: 3987 wm8994->hubs.dcs_codes = -5;
··· 95 96 struct wm8994_micdet micdet[2]; 97 98 + int revision; 99 struct wm8994_pdata *pdata; 100 }; 101 ··· 3070 static int wm8994_set_bias_level(struct snd_soc_codec *codec, 3071 enum snd_soc_bias_level level) 3072 { 3073 + struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec); 3074 + 3075 switch (level) { 3076 case SND_SOC_BIAS_ON: 3077 break; ··· 3082 3083 case SND_SOC_BIAS_STANDBY: 3084 if (codec->bias_level == SND_SOC_BIAS_OFF) { 3085 + /* Tweak DC servo and DSP configuration for 3086 + * improved performance. */ 3087 + if (wm8994->revision < 4) { 3088 + /* Tweak DC servo and DSP configuration for 3089 + * improved performance. */ 3090 + snd_soc_write(codec, 0x102, 0x3); 3091 + snd_soc_write(codec, 0x56, 0x3); 3092 + snd_soc_write(codec, 0x817, 0); 3093 + snd_soc_write(codec, 0x102, 0); 3094 + } 3095 3096 /* Discharge LINEOUT1 & 2 */ 3097 snd_soc_update_bits(codec, WM8994_ANTIPOP_1, ··· 3919 struct wm8994_priv *wm8994; 3920 struct snd_soc_codec *codec; 3921 int i; 3922 3923 if (wm8994_codec) { 3924 dev_err(&pdev->dev, "Another WM8994 is registered\n"); ··· 3973 wm8994->reg_cache[i] = 0; 3974 3975 /* Set revision-specific configuration */ 3976 + wm8994->revision = snd_soc_read(codec, WM8994_CHIP_REVISION); 3977 + switch (wm8994->revision) { 3978 case 2: 3979 case 3: 3980 wm8994->hubs.dcs_codes = -5;