From 8cf03d44ad2cc49fc458eeb7fee7911f2d98d750 Mon Sep 17 00:00:00 2001 From: Jhansi Konathala Date: Tue, 20 Aug 2019 19:27:39 +0530 Subject: [PATCH] ASoC: Add DTMF support for Audio usecase Add support to route DTMF source AFE port to any other RX port. this support is already present during voice call. This change adds t same support during audio usecase. Change-Id: I78fa1049e04de6d7af535929beac209f4c8bc1c6 Signed-off-by: Jhansi Konathala --- asoc/msm-pcm-routing-v2.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/asoc/msm-pcm-routing-v2.c b/asoc/msm-pcm-routing-v2.c index 921bca2315b8..972dedf1701e 100644 --- a/asoc/msm-pcm-routing-v2.c +++ b/asoc/msm-pcm-routing-v2.c @@ -2046,7 +2046,13 @@ static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set) pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set); - if (!is_mm_lsm_fe_id(val)) { + if (val == MSM_FRONTEND_DAI_DTMF_RX && + afe_get_port_type(msm_bedais[reg].port_id) == + MSM_AFE_PORT_TYPE_RX) { + pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n", + __func__, set, msm_bedais[reg].port_id); + afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set); + } else if (!is_mm_lsm_fe_id(val)) { /* recheck FE ID in the mixer control defined in this file */ pr_err("%s: bad MM ID\n", __func__); return; @@ -7025,7 +7031,10 @@ static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = { MSM_BACKEND_DAI_PRI_MI2S_RX, MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer, msm_routing_put_audio_mixer), - + SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, + MSM_BACKEND_DAI_PRI_MI2S_RX, + MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_audio_mixer, + msm_routing_put_audio_mixer), }; static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = { @@ -24865,6 +24874,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"}, {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"}, {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"}, + {"PRI_MI2S_RX Audio Mixer", "DTMF", "DTMF_DL_HL"}, {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"}, {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},