mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
ASoC: arizona: Add data structure for voice trigger notifier
64-bit builds would generate a warning when we passed the core number as
a pointer through the notifier data:
sound/soc/codecs/cs47l24.c:1091:13: warning: cast to pointer from
integer of different size [-Wint-to-pointer-cast]
(void *)i);
Rather than just fix this up with more casting add a data structure that
holds information for the notifier chain. This will make it easier to
add additional information in the future as well.
Fixes: 7baa7e2490 ("ASoC: arizona: Add event notification on voice trigger events")
Signed-off-by: Charles Keepax <[email protected]>
Acked-by: Arnd Bergmann <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
This commit is contained in:
parent
7baa7e2490
commit
546ad3d024
3 changed files with 14 additions and 4 deletions
|
|
@ -98,6 +98,10 @@ struct arizona_priv {
|
|||
bool dvfs_cached;
|
||||
};
|
||||
|
||||
struct arizona_voice_trigger_info {
|
||||
int core;
|
||||
};
|
||||
|
||||
#define ARIZONA_NUM_MIXER_INPUTS 104
|
||||
|
||||
extern const unsigned int arizona_mixer_tlv[];
|
||||
|
|
|
|||
|
|
@ -1067,6 +1067,7 @@ static irqreturn_t cs47l24_adsp2_irq(int irq, void *data)
|
|||
{
|
||||
struct cs47l24_priv *priv = data;
|
||||
struct arizona *arizona = priv->core.arizona;
|
||||
struct arizona_voice_trigger_info info;
|
||||
int serviced = 0;
|
||||
int i, ret;
|
||||
|
||||
|
|
@ -1074,10 +1075,12 @@ 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)
|
||||
if (ret == WM_ADSP_COMPR_VOICE_TRIGGER) {
|
||||
info.core = i;
|
||||
arizona_call_notifiers(arizona,
|
||||
ARIZONA_NOTIFY_VOICE_TRIGGER,
|
||||
(void *)i);
|
||||
&info);
|
||||
}
|
||||
}
|
||||
|
||||
if (!serviced) {
|
||||
|
|
|
|||
|
|
@ -2222,6 +2222,7 @@ static irqreturn_t wm5110_adsp2_irq(int irq, void *data)
|
|||
{
|
||||
struct wm5110_priv *priv = data;
|
||||
struct arizona *arizona = priv->core.arizona;
|
||||
struct arizona_voice_trigger_info info;
|
||||
int serviced = 0;
|
||||
int i, ret;
|
||||
|
||||
|
|
@ -2229,10 +2230,12 @@ 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)
|
||||
if (ret == WM_ADSP_COMPR_VOICE_TRIGGER) {
|
||||
info.core = i;
|
||||
arizona_call_notifiers(arizona,
|
||||
ARIZONA_NOTIFY_VOICE_TRIGGER,
|
||||
(void *)i);
|
||||
&info);
|
||||
}
|
||||
}
|
||||
|
||||
if (!serviced) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue