summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm_hubs.h
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-04-26 22:29:29 +0200
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-04-27 19:42:11 +0200
commitc340304dd8855a61a2e1bcdd5bde6b90408481a9 (patch)
tree720076a2eb7c4f6464851ddfa58b6aa66acbe6c5 /sound/soc/codecs/wm_hubs.h
parentASoC: wm_hubs: Special case headphones for digital paths in more use cases (diff)
downloadlinux-c340304dd8855a61a2e1bcdd5bde6b90408481a9.tar.xz
linux-c340304dd8855a61a2e1bcdd5bde6b90408481a9.zip
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.h6
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 @@
#include <linux/completion.h>
#include <linux/interrupt.h>
+#include <sound/control.h>
struct snd_soc_codec;
@@ -32,6 +33,7 @@ struct wm_hubs_data {
bool no_cache_dac_hp_direct;
u16 dac_hp_direct_dcs;
+ bool (*check_class_w_digital)(struct snd_soc_codec *);
bool lineout1_se;
bool lineout1n_ena;
@@ -57,5 +59,9 @@ extern irqreturn_t wm_hubs_dcs_done(int irq, void *data);
extern void wm_hubs_vmid_ena(struct snd_soc_codec *codec);
extern void wm_hubs_set_bias_level(struct snd_soc_codec *codec,
enum snd_soc_bias_level level);
+extern void wm_hubs_update_class_w(struct snd_soc_codec *codec);
+
+extern const struct snd_kcontrol_new wm_hubs_hpl_mux;
+extern const struct snd_kcontrol_new wm_hubs_hpr_mux;
#endif