aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm8994.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-04-26 15:06:56 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-04-27 13:42:10 -0400
commitaf31a227e1abee06ccd88c2c52f4fb36b786cebe (patch)
tree1d828dbc011d4c8871f851ba4dcf6a3fe45995c7 /sound/soc/codecs/wm8994.c
parentf57b8488bc39f7674cbadf4e2db05a7db8ffa660 (diff)
ASoC: wm_hubs: Special case headphones for digital paths in more use cases
The optimisations which we can do with caching the headphone DCS result in wm_hubs have only been enabled in cases where class W is enabled. However, there are more use cases which can benefit from the cache, especially with WM8994 series devices with their more advanced digital routing. Rather than keying off the class W information from the CODECs have a check in wm_hubs for a suitable path and use that to determine if we can deploy our headphone optimisations. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/wm8994.c')
-rw-r--r--sound/soc/codecs/wm8994.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
index a22c29386243..2475e1c10334 100644
--- a/sound/soc/codecs/wm8994.c
+++ b/sound/soc/codecs/wm8994.c
@@ -998,13 +998,11 @@ static void wm8994_update_class_w(struct snd_soc_codec *codec)
998 WM8994_CP_DYN_PWR | 998 WM8994_CP_DYN_PWR |
999 WM8994_CP_DYN_SRC_SEL_MASK, 999 WM8994_CP_DYN_SRC_SEL_MASK,
1000 source | WM8994_CP_DYN_PWR); 1000 source | WM8994_CP_DYN_PWR);
1001 wm8994->hubs.class_w = true;
1002 1001
1003 } else { 1002 } else {
1004 dev_dbg(codec->dev, "Class W disabled\n"); 1003 dev_dbg(codec->dev, "Class W disabled\n");
1005 snd_soc_update_bits(codec, WM8994_CLASS_W_1, 1004 snd_soc_update_bits(codec, WM8994_CLASS_W_1,
1006 WM8994_CP_DYN_PWR, 0); 1005 WM8994_CP_DYN_PWR, 0);
1007 wm8994->hubs.class_w = false;
1008 } 1006 }
1009} 1007}
1010 1008
@@ -3609,7 +3607,7 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
3609 wm8994->hubs.dcs_readback_mode = 2; 3607 wm8994->hubs.dcs_readback_mode = 2;
3610 wm8994->hubs.no_series_update = 1; 3608 wm8994->hubs.no_series_update = 1;
3611 wm8994->hubs.hp_startup_mode = 1; 3609 wm8994->hubs.hp_startup_mode = 1;
3612 wm8994->hubs.no_cache_class_w = true; 3610 wm8994->hubs.no_cache_dac_hp_direct = true;
3613 wm8994->fll_byp = true; 3611 wm8994->fll_byp = true;
3614 3612
3615 switch (wm8994->revision) { 3613 switch (wm8994->revision) {