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 <cjkonat@codeaurora.org>
This commit is contained in:
Jhansi Konathala
2019-08-20 19:27:39 +05:30
committed by Asish Bhattacharya
parent 50caff1bd9
commit 8cf03d44ad

View File

@@ -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"},