diff options
-rw-r--r-- | sound/soc/codecs/wm8990.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8990.c b/sound/soc/codecs/wm8990.c index 938e15429207..2d7b0096d929 100644 --- a/sound/soc/codecs/wm8990.c +++ b/sound/soc/codecs/wm8990.c | |||
@@ -1222,8 +1222,14 @@ static int wm8990_set_bias_level(struct snd_soc_codec *codec, | |||
1222 | switch (level) { | 1222 | switch (level) { |
1223 | case SND_SOC_BIAS_ON: | 1223 | case SND_SOC_BIAS_ON: |
1224 | break; | 1224 | break; |
1225 | |||
1225 | case SND_SOC_BIAS_PREPARE: | 1226 | case SND_SOC_BIAS_PREPARE: |
1227 | /* VMID=2*50k */ | ||
1228 | val = wm8990_read_reg_cache(codec, WM8990_POWER_MANAGEMENT_1) & | ||
1229 | ~WM8990_VMID_MODE_MASK; | ||
1230 | wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, val | 0x2); | ||
1226 | break; | 1231 | break; |
1232 | |||
1227 | case SND_SOC_BIAS_STANDBY: | 1233 | case SND_SOC_BIAS_STANDBY: |
1228 | if (codec->bias_level == SND_SOC_BIAS_OFF) { | 1234 | if (codec->bias_level == SND_SOC_BIAS_OFF) { |
1229 | /* Enable all output discharge bits */ | 1235 | /* Enable all output discharge bits */ |
@@ -1278,6 +1284,11 @@ static int wm8990_set_bias_level(struct snd_soc_codec *codec, | |||
1278 | wm8990_write(codec, WM8990_EXT_CTL1, 0xa003); | 1284 | wm8990_write(codec, WM8990_EXT_CTL1, 0xa003); |
1279 | wm8990_write(codec, WM8990_EXT_ACCESS_ENA, 0); | 1285 | wm8990_write(codec, WM8990_EXT_ACCESS_ENA, 0); |
1280 | } | 1286 | } |
1287 | |||
1288 | /* VMID=2*250k */ | ||
1289 | val = wm8990_read_reg_cache(codec, WM8990_POWER_MANAGEMENT_1) & | ||
1290 | ~WM8990_VMID_MODE_MASK; | ||
1291 | wm8990_write(codec, WM8990_POWER_MANAGEMENT_1, val | 0x4); | ||
1281 | break; | 1292 | break; |
1282 | 1293 | ||
1283 | case SND_SOC_BIAS_OFF: | 1294 | case SND_SOC_BIAS_OFF: |