aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm8993.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-02-08 13:51:42 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-02-11 18:11:20 -0500
commit5f2f38904019bbffb107767c55d9e781c94941ef (patch)
tree21a9578f10799f8bf6cf83dcef774974df4429c3 /sound/soc/codecs/wm8993.c
parent0f613c21d652079d39a4906cbe311587705632b5 (diff)
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.c4
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,
1058 struct wm8993_priv *wm8993 = snd_soc_codec_get_drvdata(codec); 1058 struct wm8993_priv *wm8993 = snd_soc_codec_get_drvdata(codec);
1059 int ret; 1059 int ret;
1060 1060
1061 wm_hubs_set_bias_level(codec, level);
1062
1061 switch (level) { 1063 switch (level) {
1062 case SND_SOC_BIAS_ON: 1064 case SND_SOC_BIAS_ON:
1063 case SND_SOC_BIAS_PREPARE: 1065 case SND_SOC_BIAS_PREPARE:
@@ -1078,6 +1080,8 @@ static int wm8993_set_bias_level(struct snd_soc_codec *codec,
1078 regcache_cache_only(wm8993->regmap, false); 1080 regcache_cache_only(wm8993->regmap, false);
1079 regcache_sync(wm8993->regmap); 1081 regcache_sync(wm8993->regmap);
1080 1082
1083 wm_hubs_vmid_ena(codec);
1084
1081 /* Bring up VMID with fast soft start */ 1085 /* Bring up VMID with fast soft start */
1082 snd_soc_update_bits(codec, WM8993_ANTIPOP2, 1086 snd_soc_update_bits(codec, WM8993_ANTIPOP2,
1083 WM8993_STARTUP_BIAS_ENA | 1087 WM8993_STARTUP_BIAS_ENA |