diff options
author | 2016-05-13 16:45:19 +0100 | |
---|---|---|
committer | 2016-05-30 16:14:36 +0100 | |
commit | 7baa7e2490e1c292a84406c90089511c96ce3114 (patch) | |
tree | b0d8f21d45465cc03214df4cff63832de2f22458 /sound/soc/codecs | |
parent | ASoC: arizona: Add a notifier chain for CODEC events (diff) | |
download | linux-7baa7e2490e1.tar.gz linux-7baa7e2490e1.tar.bz2 linux-7baa7e2490e1.zip |
ASoC: arizona: Add event notification on voice trigger events
Inform the notifier chain if the DSP recognises a voice trigger.
Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs')
-rw-r--r-- | sound/soc/codecs/arizona.h | 3 | ||||
-rw-r--r-- | sound/soc/codecs/cs47l24.c | 4 | ||||
-rw-r--r-- | sound/soc/codecs/wm5110.c | 4 |
3 files changed, 11 insertions, 0 deletions
diff --git a/sound/soc/codecs/arizona.h b/sound/soc/codecs/arizona.h index 245d13c157a5..18d347f3bfbe 100644 --- a/sound/soc/codecs/arizona.h +++ b/sound/soc/codecs/arizona.h @@ -63,6 +63,9 @@ #define ARIZONA_DVFS_SR1_RQ 0x001 #define ARIZONA_DVFS_ADSP1_RQ 0x100 +/* Notifier events */ +#define ARIZONA_NOTIFY_VOICE_TRIGGER 0x1 + struct arizona; struct wm_adsp; diff --git a/sound/soc/codecs/cs47l24.c b/sound/soc/codecs/cs47l24.c index fa9a6a5a6120..7e3d138d077b 100644 --- a/sound/soc/codecs/cs47l24.c +++ b/sound/soc/codecs/cs47l24.c @@ -1074,6 +1074,10 @@ static irqreturn_t cs47l24_adsp2_irq(int irq, void *data) ret = wm_adsp_compr_handle_irq(&priv->core.adsp[i]); if (ret != -ENODEV) serviced++; + if (ret == WM_ADSP_COMPR_VOICE_TRIGGER) + arizona_call_notifiers(arizona, + ARIZONA_NOTIFY_VOICE_TRIGGER, + (void *)i); } if (!serviced) { diff --git a/sound/soc/codecs/wm5110.c b/sound/soc/codecs/wm5110.c index 338a3b52705b..dbc9b4df38a0 100644 --- a/sound/soc/codecs/wm5110.c +++ b/sound/soc/codecs/wm5110.c @@ -2229,6 +2229,10 @@ static irqreturn_t wm5110_adsp2_irq(int irq, void *data) ret = wm_adsp_compr_handle_irq(&priv->core.adsp[i]); if (ret != -ENODEV) serviced++; + if (ret == WM_ADSP_COMPR_VOICE_TRIGGER) + arizona_call_notifiers(arizona, + ARIZONA_NOTIFY_VOICE_TRIGGER, + (void *)i); } if (!serviced) { |