diff options
Diffstat (limited to 'sound/soc/codecs/wm8993.c')
-rw-r--r-- | sound/soc/codecs/wm8993.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8993.c b/sound/soc/codecs/wm8993.c index 828d8174d5b7..bacfc2f20d70 100644 --- a/sound/soc/codecs/wm8993.c +++ b/sound/soc/codecs/wm8993.c | |||
@@ -213,6 +213,7 @@ static struct { | |||
213 | }; | 213 | }; |
214 | 214 | ||
215 | struct wm8993_priv { | 215 | struct wm8993_priv { |
216 | struct wm_hubs_data hubs_data; | ||
216 | u16 reg_cache[WM8993_REGISTER_COUNT]; | 217 | u16 reg_cache[WM8993_REGISTER_COUNT]; |
217 | struct wm8993_platform_data pdata; | 218 | struct wm8993_platform_data pdata; |
218 | struct snd_soc_codec codec; | 219 | struct snd_soc_codec codec; |
@@ -997,6 +998,11 @@ static int wm8993_set_bias_level(struct snd_soc_codec *codec, | |||
997 | 998 | ||
998 | case SND_SOC_BIAS_STANDBY: | 999 | case SND_SOC_BIAS_STANDBY: |
999 | if (codec->bias_level == SND_SOC_BIAS_OFF) { | 1000 | if (codec->bias_level == SND_SOC_BIAS_OFF) { |
1001 | /* Tune DC servo configuration */ | ||
1002 | snd_soc_write(codec, 0x44, 3); | ||
1003 | snd_soc_write(codec, 0x56, 3); | ||
1004 | snd_soc_write(codec, 0x44, 0); | ||
1005 | |||
1000 | /* Bring up VMID with fast soft start */ | 1006 | /* Bring up VMID with fast soft start */ |
1001 | snd_soc_update_bits(codec, WM8993_ANTIPOP2, | 1007 | snd_soc_update_bits(codec, WM8993_ANTIPOP2, |
1002 | WM8993_STARTUP_BIAS_ENA | | 1008 | WM8993_STARTUP_BIAS_ENA | |
@@ -1591,6 +1597,8 @@ static int wm8993_i2c_probe(struct i2c_client *i2c, | |||
1591 | codec->num_dai = 1; | 1597 | codec->num_dai = 1; |
1592 | codec->private_data = wm8993; | 1598 | codec->private_data = wm8993; |
1593 | 1599 | ||
1600 | wm8993->hubs_data.hp_startup_mode = 1; | ||
1601 | |||
1594 | memcpy(wm8993->reg_cache, wm8993_reg_defaults, | 1602 | memcpy(wm8993->reg_cache, wm8993_reg_defaults, |
1595 | sizeof(wm8993->reg_cache)); | 1603 | sizeof(wm8993->reg_cache)); |
1596 | 1604 | ||