Merge "ASoC: Add DTMF support for Audio usecase"
这个提交包含在:
@@ -2056,7 +2056,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);
|
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 */
|
/* recheck FE ID in the mixer control defined in this file */
|
||||||
pr_err("%s: bad MM ID\n", __func__);
|
pr_err("%s: bad MM ID\n", __func__);
|
||||||
return;
|
return;
|
||||||
@@ -7040,7 +7046,10 @@ static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
|
|||||||
MSM_BACKEND_DAI_PRI_MI2S_RX,
|
MSM_BACKEND_DAI_PRI_MI2S_RX,
|
||||||
MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
||||||
msm_routing_put_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[] = {
|
static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
|
||||||
@@ -24885,6 +24894,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||||||
{"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
|
{"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
|
||||||
{"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
|
{"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
|
||||||
{"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
|
{"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", "MultiMedia1", "MM_DL1"},
|
||||||
{"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
|
{"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
|
||||||
|
在新工单中引用
屏蔽一个用户