summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm_hubs.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-02-10 19:09:42 +0100
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-02-12 00:11:21 +0100
commitd60d6c3b65fa2156ec95d96f73e34cdb0c586458 (patch)
tree927fecb5b0947117929715993dfa3c2ef20287b9 /sound/soc/codecs/wm_hubs.c
parentASoC: wm_hubs: Improve single ended line output enable performance (diff)
downloadlinux-d60d6c3b65fa2156ec95d96f73e34cdb0c586458.tar.xz
linux-d60d6c3b65fa2156ec95d96f73e34cdb0c586458.zip
ASoC: wm_hubs: Clamp inputs to VMID while we ramp
Reduces the amount of time taken to stabilise them. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/wm_hubs.c')
-rw-r--r--sound/soc/codecs/wm_hubs.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm_hubs.c b/sound/soc/codecs/wm_hubs.c
index f7650c5cc5c2..9742c666cd0a 100644
--- a/sound/soc/codecs/wm_hubs.c
+++ b/sound/soc/codecs/wm_hubs.c
@@ -1040,6 +1040,12 @@ void wm_hubs_set_bias_level(struct snd_soc_codec *codec,
int val;
switch (level) {
+ case SND_SOC_BIAS_STANDBY:
+ /* Clamp the inputs to VMID while we ramp to charge caps */
+ snd_soc_update_bits(codec, WM8993_INPUTS_CLAMP_REG,
+ WM8993_INPUTS_CLAMP, WM8993_INPUTS_CLAMP);
+ break;
+
case SND_SOC_BIAS_ON:
/* Turn off any unneded single ended outputs */
val = 0;
@@ -1067,6 +1073,10 @@ void wm_hubs_set_bias_level(struct snd_soc_codec *codec,
!hubs->lineout2n_ena && !hubs->lineout2p_ena)
snd_soc_update_bits(codec, WM8993_ANTIPOP1,
WM8993_LINEOUT_VMID_BUF_ENA, 0);
+
+ /* Remove the input clamps */
+ snd_soc_update_bits(codec, WM8993_INPUTS_CLAMP_REG,
+ WM8993_INPUTS_CLAMP, 0);
break;
default: