tangled
alpha
login
or
join now
tjh.dev
/
kernel
Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1
fork
atom
overview
issues
pulls
pipelines
Merge branch 'fix/asoc' into for-linus
Takashi Iwai
15 years ago
aaae5272
18c5ef38
+19
-11
2 changed files
expand all
collapse all
unified
split
MAINTAINERS
sound
soc
codecs
wm8994.c
+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>
0
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
0
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
{
0
0
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);
0
0
0
0
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;
0
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;