Loading asoc/msm-pcm-routing-v2.c +270 −0 Original line number Diff line number Diff line Loading @@ -13431,6 +13431,146 @@ static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = { msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = { SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = { SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = { SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = { SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new stub_rx_mixer_controls[] = { SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_EXTPROC_RX, Loading Loading @@ -13552,6 +13692,9 @@ MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1, SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("PRI_TDM_TX3_MMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = { Loading Loading @@ -13638,6 +13781,9 @@ static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = { SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM, MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("PRI_TDM_TX3_MMode2", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new tx_voip_mixer_controls[] = { Loading Loading @@ -19907,6 +20053,22 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = { SND_SOC_NOPM, 0, 0, quin_mi2s_rx_voice_mixer_controls, ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)), SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer", SND_SOC_NOPM, 0, 0, pri_tdm_rx_0_voice_mixer_controls, ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)), SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer", SND_SOC_NOPM, 0, 0, pri_tdm_rx_1_voice_mixer_controls, ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)), SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer", SND_SOC_NOPM, 0, 0, pri_tdm_rx_2_voice_mixer_controls, ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)), SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer", SND_SOC_NOPM, 0, 0, pri_tdm_rx_3_voice_mixer_controls, ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)), SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer", SND_SOC_NOPM, 0, 0, quat_tdm_rx_2_voice_mixer_controls, Loading Loading @@ -22317,6 +22479,62 @@ static const struct snd_soc_dapm_route intercon[] = { {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"}, {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"}, {"PRI_TDM_RX_0_Voice Mixer", "CSVoice", "CS-VOICE_DL1"}, {"PRI_TDM_RX_0_Voice Mixer", "Voice2", "VOICE2_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "VoLTE", "VoLTE_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "VoWLAN", "VoWLAN_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"}, {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"}, {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"}, {"PRI_TDM_RX_1_Voice Mixer", "CSVoice", "CS-VOICE_DL1"}, {"PRI_TDM_RX_1_Voice Mixer", "Voice2", "VOICE2_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "VoLTE", "VoLTE_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "VoWLAN", "VoWLAN_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"}, {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"}, {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"}, {"PRI_TDM_RX_2_Voice Mixer", "CSVoice", "CS-VOICE_DL1"}, {"PRI_TDM_RX_2_Voice Mixer", "Voice2", "VOICE2_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "VoLTE", "VoLTE_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "VoWLAN", "VoWLAN_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"}, {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"}, {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"}, {"PRI_TDM_RX_3_Voice Mixer", "CSVoice", "CS-VOICE_DL1"}, {"PRI_TDM_RX_3_Voice Mixer", "Voice2", "VOICE2_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "VoLTE", "VoLTE_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "VoWLAN", "VoWLAN_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"}, {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"}, {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"}, {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"}, {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"}, Loading Loading @@ -22455,6 +22673,55 @@ static const struct snd_soc_dapm_route intercon[] = { {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"}, {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"}, {"Voice_Tx Mixer", "PRI_TX_Voice", "PRI_I2S_TX"}, {"Voice_Tx Mixer", "PRI_MI2S_TX_Voice", "PRI_MI2S_TX"}, {"Voice_Tx Mixer", "MI2S_TX_Voice", "MI2S_TX"}, {"Voice_Tx Mixer", "TERT_MI2S_TX_Voice", "TERT_MI2S_TX"}, {"Voice_Tx Mixer", "SLIM_0_TX_Voice", "SLIMBUS_0_TX"}, {"Voice_Tx Mixer", "INTERNAL_BT_SCO_TX_Voice", "INT_BT_SCO_TX"}, {"Voice_Tx Mixer", "AFE_PCM_TX_Voice", "PCM_TX"}, {"Voice_Tx Mixer", "AUX_PCM_TX_Voice", "AUX_PCM_TX"}, {"Voice_Tx Mixer", "SEC_AUX_PCM_TX_Voice", "SEC_AUX_PCM_TX"}, {"Voice_Tx Mixer", "SEC_MI2S_TX_Voice", "SEC_MI2S_TX"}, {"Voice_Tx Mixer", "PRI_TDM_TX_3_Voice", "PRI_TDM_TX_3"}, {"CS-VOICE_UL1", NULL, "Voice_Tx Mixer"}, {"Voice2_Tx Mixer", "PRI_TX_Voice2", "PRI_I2S_TX"}, {"Voice2_Tx Mixer", "PRI_MI2S_TX_Voice2", "PRI_MI2S_TX"}, {"Voice2_Tx Mixer", "MI2S_TX_Voice2", "MI2S_TX"}, {"Voice2_Tx Mixer", "TERT_MI2S_TX_Voice2", "TERT_MI2S_TX"}, {"Voice2_Tx Mixer", "SLIM_0_TX_Voice2", "SLIMBUS_0_TX"}, {"Voice2_Tx Mixer", "INTERNAL_BT_SCO_TX_Voice2", "INT_BT_SCO_TX"}, {"Voice2_Tx Mixer", "AFE_PCM_TX_Voice2", "PCM_TX"}, {"Voice2_Tx Mixer", "AUX_PCM_TX_Voice2", "AUX_PCM_TX"}, {"Voice2_Tx Mixer", "SEC_AUX_PCM_TX_Voice2", "SEC_AUX_PCM_TX"}, {"Voice2_Tx Mixer", "PRI_TDM_TX_3_Voice2", "PRI_TDM_TX_3"}, {"VOICE2_UL", NULL, "Voice2_Tx Mixer"}, {"VoLTE_Tx Mixer", "PRI_TX_VoLTE", "PRI_I2S_TX"}, {"VoLTE_Tx Mixer", "SLIM_0_TX_VoLTE", "SLIMBUS_0_TX"}, {"VoLTE_Tx Mixer", "INTERNAL_BT_SCO_TX_VoLTE", "INT_BT_SCO_TX"}, {"VoLTE_Tx Mixer", "AFE_PCM_TX_VoLTE", "PCM_TX"}, {"VoLTE_Tx Mixer", "AUX_PCM_TX_VoLTE", "AUX_PCM_TX"}, {"VoLTE_Tx Mixer", "SEC_AUX_PCM_TX_VoLTE", "SEC_AUX_PCM_TX"}, {"VoLTE_Tx Mixer", "MI2S_TX_VoLTE", "MI2S_TX"}, {"VoLTE_Tx Mixer", "PRI_MI2S_TX_VoLTE", "PRI_MI2S_TX"}, {"VoLTE_Tx Mixer", "TERT_MI2S_TX_VoLTE", "TERT_MI2S_TX"}, {"VoLTE_Tx Mixer", "PRI_TDM_TX_3_VoLTE", "PRI_TDM_TX_3"}, {"VoLTE_UL", NULL, "VoLTE_Tx Mixer"}, {"VoWLAN_Tx Mixer", "PRI_TX_VoWLAN", "PRI_I2S_TX"}, {"VoWLAN_Tx Mixer", "SLIM_0_TX_VoWLAN", "SLIMBUS_0_TX"}, {"VoWLAN_Tx Mixer", "INTERNAL_BT_SCO_TX_VoWLAN", "INT_BT_SCO_TX"}, {"VoWLAN_Tx Mixer", "AFE_PCM_TX_VoWLAN", "PCM_TX"}, {"VoWLAN_Tx Mixer", "AUX_PCM_TX_VoWLAN", "AUX_PCM_TX"}, {"VoWLAN_Tx Mixer", "SEC_AUX_PCM_TX_VoWLAN", "SEC_AUX_PCM_TX"}, {"VoWLAN_Tx Mixer", "MI2S_TX_VoWLAN", "MI2S_TX"}, {"VoWLAN_Tx Mixer", "PRI_MI2S_TX_VoWLAN", "PRI_MI2S_TX"}, {"VoWLAN_Tx Mixer", "TERT_MI2S_TX_VoWLAN", "TERT_MI2S_TX"}, {"VoWLAN_Tx Mixer", "PRI_TDM_TX_3_VoWLAN", "PRI_TDM_TX_3"}, {"VoWLAN_UL", NULL, "VoWLAN_Tx Mixer"}, {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"}, {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"}, {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"}, Loading @@ -22480,6 +22747,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"}, {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"}, {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"}, {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"}, {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"}, {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"}, Loading @@ -22506,6 +22774,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"}, {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"}, {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"}, {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"}, {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"}, {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"}, Loading @@ -22524,6 +22793,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"}, {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"}, {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"}, {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"}, {"VOIP_UL", NULL, "Voip_Tx Mixer"}, {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"}, Loading
asoc/msm-pcm-routing-v2.c +270 −0 Original line number Diff line number Diff line Loading @@ -13431,6 +13431,146 @@ static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = { msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new pri_tdm_rx_0_voice_mixer_controls[] = { SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_0, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new pri_tdm_rx_1_voice_mixer_controls[] = { SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_1, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new pri_tdm_rx_2_voice_mixer_controls[] = { SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_2, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new pri_tdm_rx_3_voice_mixer_controls[] = { SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("Voice Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("Voice2 Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer, msm_routing_put_voice_stub_mixer), SOC_DOUBLE_EXT("VoLTE Stub", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_RX_3, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new stub_rx_mixer_controls[] = { SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_EXTPROC_RX, Loading Loading @@ -13552,6 +13692,9 @@ MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1, SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("PRI_TDM_TX3_MMode1", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = { Loading Loading @@ -13638,6 +13781,9 @@ static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = { SOC_DOUBLE_EXT("QUIN_MI2S_TX_MMode2", SND_SOC_NOPM, MSM_BACKEND_DAI_QUINARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), SOC_DOUBLE_EXT("PRI_TDM_TX3_MMode2", SND_SOC_NOPM, MSM_BACKEND_DAI_PRI_TDM_TX_3, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer), }; static const struct snd_kcontrol_new tx_voip_mixer_controls[] = { Loading Loading @@ -19907,6 +20053,22 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = { SND_SOC_NOPM, 0, 0, quin_mi2s_rx_voice_mixer_controls, ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)), SND_SOC_DAPM_MIXER("PRI_TDM_RX_0_Voice Mixer", SND_SOC_NOPM, 0, 0, pri_tdm_rx_0_voice_mixer_controls, ARRAY_SIZE(pri_tdm_rx_0_voice_mixer_controls)), SND_SOC_DAPM_MIXER("PRI_TDM_RX_1_Voice Mixer", SND_SOC_NOPM, 0, 0, pri_tdm_rx_1_voice_mixer_controls, ARRAY_SIZE(pri_tdm_rx_1_voice_mixer_controls)), SND_SOC_DAPM_MIXER("PRI_TDM_RX_2_Voice Mixer", SND_SOC_NOPM, 0, 0, pri_tdm_rx_2_voice_mixer_controls, ARRAY_SIZE(pri_tdm_rx_2_voice_mixer_controls)), SND_SOC_DAPM_MIXER("PRI_TDM_RX_3_Voice Mixer", SND_SOC_NOPM, 0, 0, pri_tdm_rx_3_voice_mixer_controls, ARRAY_SIZE(pri_tdm_rx_3_voice_mixer_controls)), SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer", SND_SOC_NOPM, 0, 0, quat_tdm_rx_2_voice_mixer_controls, Loading Loading @@ -22317,6 +22479,62 @@ static const struct snd_soc_dapm_route intercon[] = { {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"}, {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"}, {"PRI_TDM_RX_0_Voice Mixer", "CSVoice", "CS-VOICE_DL1"}, {"PRI_TDM_RX_0_Voice Mixer", "Voice2", "VOICE2_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "Voip", "VOIP_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "VoLTE", "VoLTE_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "VoWLAN", "VoWLAN_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "QCHAT", "QCHAT_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "DTMF", "DTMF_DL_HL"}, {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"}, {"PRI_TDM_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"}, {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_Voice Mixer"}, {"PRI_TDM_RX_1_Voice Mixer", "CSVoice", "CS-VOICE_DL1"}, {"PRI_TDM_RX_1_Voice Mixer", "Voice2", "VOICE2_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "Voip", "VOIP_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "VoLTE", "VoLTE_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "VoWLAN", "VoWLAN_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "QCHAT", "QCHAT_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "DTMF", "DTMF_DL_HL"}, {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"}, {"PRI_TDM_RX_1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"}, {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_Voice Mixer"}, {"PRI_TDM_RX_2_Voice Mixer", "CSVoice", "CS-VOICE_DL1"}, {"PRI_TDM_RX_2_Voice Mixer", "Voice2", "VOICE2_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "Voip", "VOIP_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "VoLTE", "VoLTE_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "VoWLAN", "VoWLAN_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "QCHAT", "QCHAT_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "DTMF", "DTMF_DL_HL"}, {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"}, {"PRI_TDM_RX_2_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"}, {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_Voice Mixer"}, {"PRI_TDM_RX_3_Voice Mixer", "CSVoice", "CS-VOICE_DL1"}, {"PRI_TDM_RX_3_Voice Mixer", "Voice2", "VOICE2_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "Voip", "VOIP_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "VoLTE", "VoLTE_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "VoWLAN", "VoWLAN_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "QCHAT", "QCHAT_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "DTMF", "DTMF_DL_HL"}, {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"}, {"PRI_TDM_RX_3_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"}, {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_Voice Mixer"}, {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"}, {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"}, Loading Loading @@ -22455,6 +22673,55 @@ static const struct snd_soc_dapm_route intercon[] = { {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"}, {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"}, {"Voice_Tx Mixer", "PRI_TX_Voice", "PRI_I2S_TX"}, {"Voice_Tx Mixer", "PRI_MI2S_TX_Voice", "PRI_MI2S_TX"}, {"Voice_Tx Mixer", "MI2S_TX_Voice", "MI2S_TX"}, {"Voice_Tx Mixer", "TERT_MI2S_TX_Voice", "TERT_MI2S_TX"}, {"Voice_Tx Mixer", "SLIM_0_TX_Voice", "SLIMBUS_0_TX"}, {"Voice_Tx Mixer", "INTERNAL_BT_SCO_TX_Voice", "INT_BT_SCO_TX"}, {"Voice_Tx Mixer", "AFE_PCM_TX_Voice", "PCM_TX"}, {"Voice_Tx Mixer", "AUX_PCM_TX_Voice", "AUX_PCM_TX"}, {"Voice_Tx Mixer", "SEC_AUX_PCM_TX_Voice", "SEC_AUX_PCM_TX"}, {"Voice_Tx Mixer", "SEC_MI2S_TX_Voice", "SEC_MI2S_TX"}, {"Voice_Tx Mixer", "PRI_TDM_TX_3_Voice", "PRI_TDM_TX_3"}, {"CS-VOICE_UL1", NULL, "Voice_Tx Mixer"}, {"Voice2_Tx Mixer", "PRI_TX_Voice2", "PRI_I2S_TX"}, {"Voice2_Tx Mixer", "PRI_MI2S_TX_Voice2", "PRI_MI2S_TX"}, {"Voice2_Tx Mixer", "MI2S_TX_Voice2", "MI2S_TX"}, {"Voice2_Tx Mixer", "TERT_MI2S_TX_Voice2", "TERT_MI2S_TX"}, {"Voice2_Tx Mixer", "SLIM_0_TX_Voice2", "SLIMBUS_0_TX"}, {"Voice2_Tx Mixer", "INTERNAL_BT_SCO_TX_Voice2", "INT_BT_SCO_TX"}, {"Voice2_Tx Mixer", "AFE_PCM_TX_Voice2", "PCM_TX"}, {"Voice2_Tx Mixer", "AUX_PCM_TX_Voice2", "AUX_PCM_TX"}, {"Voice2_Tx Mixer", "SEC_AUX_PCM_TX_Voice2", "SEC_AUX_PCM_TX"}, {"Voice2_Tx Mixer", "PRI_TDM_TX_3_Voice2", "PRI_TDM_TX_3"}, {"VOICE2_UL", NULL, "Voice2_Tx Mixer"}, {"VoLTE_Tx Mixer", "PRI_TX_VoLTE", "PRI_I2S_TX"}, {"VoLTE_Tx Mixer", "SLIM_0_TX_VoLTE", "SLIMBUS_0_TX"}, {"VoLTE_Tx Mixer", "INTERNAL_BT_SCO_TX_VoLTE", "INT_BT_SCO_TX"}, {"VoLTE_Tx Mixer", "AFE_PCM_TX_VoLTE", "PCM_TX"}, {"VoLTE_Tx Mixer", "AUX_PCM_TX_VoLTE", "AUX_PCM_TX"}, {"VoLTE_Tx Mixer", "SEC_AUX_PCM_TX_VoLTE", "SEC_AUX_PCM_TX"}, {"VoLTE_Tx Mixer", "MI2S_TX_VoLTE", "MI2S_TX"}, {"VoLTE_Tx Mixer", "PRI_MI2S_TX_VoLTE", "PRI_MI2S_TX"}, {"VoLTE_Tx Mixer", "TERT_MI2S_TX_VoLTE", "TERT_MI2S_TX"}, {"VoLTE_Tx Mixer", "PRI_TDM_TX_3_VoLTE", "PRI_TDM_TX_3"}, {"VoLTE_UL", NULL, "VoLTE_Tx Mixer"}, {"VoWLAN_Tx Mixer", "PRI_TX_VoWLAN", "PRI_I2S_TX"}, {"VoWLAN_Tx Mixer", "SLIM_0_TX_VoWLAN", "SLIMBUS_0_TX"}, {"VoWLAN_Tx Mixer", "INTERNAL_BT_SCO_TX_VoWLAN", "INT_BT_SCO_TX"}, {"VoWLAN_Tx Mixer", "AFE_PCM_TX_VoWLAN", "PCM_TX"}, {"VoWLAN_Tx Mixer", "AUX_PCM_TX_VoWLAN", "AUX_PCM_TX"}, {"VoWLAN_Tx Mixer", "SEC_AUX_PCM_TX_VoWLAN", "SEC_AUX_PCM_TX"}, {"VoWLAN_Tx Mixer", "MI2S_TX_VoWLAN", "MI2S_TX"}, {"VoWLAN_Tx Mixer", "PRI_MI2S_TX_VoWLAN", "PRI_MI2S_TX"}, {"VoWLAN_Tx Mixer", "TERT_MI2S_TX_VoWLAN", "TERT_MI2S_TX"}, {"VoWLAN_Tx Mixer", "PRI_TDM_TX_3_VoWLAN", "PRI_TDM_TX_3"}, {"VoWLAN_UL", NULL, "VoWLAN_Tx Mixer"}, {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"}, {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"}, {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"}, Loading @@ -22480,6 +22747,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"}, {"VoiceMMode1_Tx Mixer", "QUAT_MI2S_TX_MMode1", "QUAT_MI2S_TX"}, {"VoiceMMode1_Tx Mixer", "QUIN_MI2S_TX_MMode1", "QUIN_MI2S_TX"}, {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode1", "PRI_TDM_TX_3"}, {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"}, {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"}, Loading @@ -22506,6 +22774,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"}, {"VoiceMMode2_Tx Mixer", "QUAT_MI2S_TX_MMode2", "QUAT_MI2S_TX"}, {"VoiceMMode2_Tx Mixer", "QUIN_MI2S_TX_MMode2", "QUIN_MI2S_TX"}, {"VoiceMMode1_Tx Mixer", "PRI_TDM_TX_3_MMode2", "PRI_TDM_TX_3"}, {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"}, {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"}, Loading @@ -22524,6 +22793,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"}, {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"}, {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"}, {"Voip_Tx Mixer", "PRI_TDM_TX_3_Voip", "PRI_TDM_TX_3"}, {"VOIP_UL", NULL, "Voip_Tx Mixer"}, {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},