diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-02-08 18:51:42 +0000 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-02-11 23:11:20 +0000 |
commit | 5f2f38904019bbffb107767c55d9e781c94941ef (patch) | |
tree | 21a9578f10799f8bf6cf83dcef774974df4429c3 /sound/soc/codecs/wm8993.c | |
parent | 0f613c21d652079d39a4906cbe311587705632b5 (diff) | |
download | talos-op-linux-5f2f38904019bbffb107767c55d9e781c94941ef.tar.gz talos-op-linux-5f2f38904019bbffb107767c55d9e781c94941ef.zip |
ASoC: wm_hubs: Improve single ended line output enable performance
The enable of the single ended line outputs on wm_hubs devices performs
better if the output is enabled prior to starting VMID. Since inactive
outputs are held at VMID anyway there is little cost to doing this for
unused outputs. Add callbacks into wm_hubs and keep track of which outputs
are really active so we can disable them once we're active.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/wm8993.c')
-rw-r--r-- | sound/soc/codecs/wm8993.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8993.c b/sound/soc/codecs/wm8993.c index ab4685a8a570..1e69f63ede26 100644 --- a/sound/soc/codecs/wm8993.c +++ b/sound/soc/codecs/wm8993.c @@ -1058,6 +1058,8 @@ static int wm8993_set_bias_level(struct snd_soc_codec *codec, struct wm8993_priv *wm8993 = snd_soc_codec_get_drvdata(codec); int ret; + wm_hubs_set_bias_level(codec, level); + switch (level) { case SND_SOC_BIAS_ON: case SND_SOC_BIAS_PREPARE: @@ -1078,6 +1080,8 @@ static int wm8993_set_bias_level(struct snd_soc_codec *codec, regcache_cache_only(wm8993->regmap, false); regcache_sync(wm8993->regmap); + wm_hubs_vmid_ena(codec); + /* Bring up VMID with fast soft start */ snd_soc_update_bits(codec, WM8993_ANTIPOP2, WM8993_STARTUP_BIAS_ENA | |