diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-04-26 16:29:29 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-04-27 13:42:11 -0400 |
commit | c340304dd8855a61a2e1bcdd5bde6b90408481a9 (patch) | |
tree | 720076a2eb7c4f6464851ddfa58b6aa66acbe6c5 /sound/soc/codecs/wm_hubs.h | |
parent | af31a227e1abee06ccd88c2c52f4fb36b786cebe (diff) |
ASoC: wm_hubs: Factor out class W management
Since the analogue portions of the checks for class W are the same over
all the devices factor out these checks into wm_hubs and while we're at
it also use wm_hubs_dac_hp_direct() to enable class W optimisations on
more paths.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/wm_hubs.h')
-rw-r--r-- | sound/soc/codecs/wm_hubs.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm_hubs.h b/sound/soc/codecs/wm_hubs.h index 8bb9f1b51bf3..71861fc580a3 100644 --- a/sound/soc/codecs/wm_hubs.h +++ b/sound/soc/codecs/wm_hubs.h | |||
@@ -16,6 +16,7 @@ | |||
16 | 16 | ||
17 | #include <linux/completion.h> | 17 | #include <linux/completion.h> |
18 | #include <linux/interrupt.h> | 18 | #include <linux/interrupt.h> |
19 | #include <sound/control.h> | ||
19 | 20 | ||
20 | struct snd_soc_codec; | 21 | struct snd_soc_codec; |
21 | 22 | ||
@@ -32,6 +33,7 @@ struct wm_hubs_data { | |||
32 | 33 | ||
33 | bool no_cache_dac_hp_direct; | 34 | bool no_cache_dac_hp_direct; |
34 | u16 dac_hp_direct_dcs; | 35 | u16 dac_hp_direct_dcs; |
36 | bool (*check_class_w_digital)(struct snd_soc_codec *); | ||
35 | 37 | ||
36 | bool lineout1_se; | 38 | bool lineout1_se; |
37 | bool lineout1n_ena; | 39 | bool lineout1n_ena; |
@@ -57,5 +59,9 @@ extern irqreturn_t wm_hubs_dcs_done(int irq, void *data); | |||
57 | extern void wm_hubs_vmid_ena(struct snd_soc_codec *codec); | 59 | extern void wm_hubs_vmid_ena(struct snd_soc_codec *codec); |
58 | extern void wm_hubs_set_bias_level(struct snd_soc_codec *codec, | 60 | extern void wm_hubs_set_bias_level(struct snd_soc_codec *codec, |
59 | enum snd_soc_bias_level level); | 61 | enum snd_soc_bias_level level); |
62 | extern void wm_hubs_update_class_w(struct snd_soc_codec *codec); | ||
63 | |||
64 | extern const struct snd_kcontrol_new wm_hubs_hpl_mux; | ||
65 | extern const struct snd_kcontrol_new wm_hubs_hpr_mux; | ||
60 | 66 | ||
61 | #endif | 67 | #endif |