From 78505032fe2206d72b2f999215c5c0ee5a7f71ed Mon Sep 17 00:00:00 2001 From: Dhanalakshmi Siddani Date: Fri, 22 Jul 2016 15:15:05 +0530 Subject: [PATCH] ASoC: msm: Implement HFP tx mute get function Implement function to get HFP Tx mute status. CRs-Fixed: 1045063 Change-Id: I64931decb9948ed47f046c0b6267150fe512a3dc Signed-off-by: Dhanalakshmi Siddani --- sound/soc/msm/qdsp6v2/msm-pcm-loopback-v2.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/sound/soc/msm/qdsp6v2/msm-pcm-loopback-v2.c b/sound/soc/msm/qdsp6v2/msm-pcm-loopback-v2.c index 3c75e30fb419..a75a02bdb416 100644 --- a/sound/soc/msm/qdsp6v2/msm-pcm-loopback-v2.c +++ b/sound/soc/msm/qdsp6v2/msm-pcm-loopback-v2.c @@ -65,6 +65,8 @@ static struct fe_dai_session_map session_map[LOOPBACK_SESSION_MAX] = { { {}, NULL}, }; +static u32 hfp_tx_mute; + static void stop_pcm(struct msm_pcm_loopback *pcm); static int msm_pcm_loopback_get_session(struct snd_soc_pcm_runtime *rtd, struct msm_pcm_loopback **pcm); @@ -109,6 +111,13 @@ static void msm_pcm_loopback_event_handler(uint32_t opcode, uint32_t token, } } +static int msm_loopback_session_mute_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + ucontrol->value.integer.value[0] = hfp_tx_mute; + return 0; +} + static int msm_loopback_session_mute_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { @@ -123,7 +132,7 @@ static int msm_loopback_session_mute_put(struct snd_kcontrol *kcontrol, } pr_debug("%s: mute=%d\n", __func__, mute); - + hfp_tx_mute = mute; for (n = 0; n < LOOPBACK_SESSION_MAX; n++) { if (!strcmp(session_map[n].stream_name, "MultiMedia6")) pcm = session_map[n].loopback_priv; @@ -140,7 +149,8 @@ done: static struct snd_kcontrol_new msm_loopback_controls[] = { SOC_SINGLE_EXT("HFP TX Mute", SND_SOC_NOPM, 0, 1, 0, - NULL, msm_loopback_session_mute_put), + msm_loopback_session_mute_get, + msm_loopback_session_mute_put), }; static int msm_pcm_loopback_probe(struct snd_soc_platform *platform) -- 2.11.0