diff options
Diffstat (limited to 'sound/soc/codecs/wm8962.c')
-rw-r--r-- | sound/soc/codecs/wm8962.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c index eaf65863ec21..ce6720073798 100644 --- a/sound/soc/codecs/wm8962.c +++ b/sound/soc/codecs/wm8962.c | |||
@@ -2501,6 +2501,9 @@ static int wm8962_set_bias_level(struct snd_soc_codec *codec, | |||
2501 | /* VMID 2*250k */ | 2501 | /* VMID 2*250k */ |
2502 | snd_soc_update_bits(codec, WM8962_PWR_MGMT_1, | 2502 | snd_soc_update_bits(codec, WM8962_PWR_MGMT_1, |
2503 | WM8962_VMID_SEL_MASK, 0x100); | 2503 | WM8962_VMID_SEL_MASK, 0x100); |
2504 | |||
2505 | if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) | ||
2506 | msleep(100); | ||
2504 | break; | 2507 | break; |
2505 | 2508 | ||
2506 | case SND_SOC_BIAS_OFF: | 2509 | case SND_SOC_BIAS_OFF: |
@@ -3730,21 +3733,6 @@ static int wm8962_runtime_resume(struct device *dev) | |||
3730 | 3733 | ||
3731 | regcache_sync(wm8962->regmap); | 3734 | regcache_sync(wm8962->regmap); |
3732 | 3735 | ||
3733 | regmap_update_bits(wm8962->regmap, WM8962_ANTI_POP, | ||
3734 | WM8962_STARTUP_BIAS_ENA | WM8962_VMID_BUF_ENA, | ||
3735 | WM8962_STARTUP_BIAS_ENA | WM8962_VMID_BUF_ENA); | ||
3736 | |||
3737 | /* Bias enable at 2*50k for ramp */ | ||
3738 | regmap_update_bits(wm8962->regmap, WM8962_PWR_MGMT_1, | ||
3739 | WM8962_VMID_SEL_MASK | WM8962_BIAS_ENA, | ||
3740 | WM8962_BIAS_ENA | 0x180); | ||
3741 | |||
3742 | msleep(5); | ||
3743 | |||
3744 | /* VMID back to 2x250k for standby */ | ||
3745 | regmap_update_bits(wm8962->regmap, WM8962_PWR_MGMT_1, | ||
3746 | WM8962_VMID_SEL_MASK, 0x100); | ||
3747 | |||
3748 | return 0; | 3736 | return 0; |
3749 | } | 3737 | } |
3750 | 3738 | ||