mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
ASoC: msm: Add support for voice over USB.
Add routes to transfer voice packets to/from the external modem to USB in APQ, and route the mixed audio and voice streams to the extertal modem for echo cancellation. Signed-off-by: Helen Zeng <xiaoyunz@codeaurora.org> (cherry picked from commit 5cf6970f74261aecca981c1ee14e5a62e4466bbd) Conflicts: sound/soc/msm/msm-pcm-routing.c Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org> (cherry picked from commit 0f6ff949a8dac48f7d5771fafbe366e4f4bcc28e) Change-Id: I6be578ebeadb7ebe0ad6fb7a344eb7cb3a411eee Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
This commit is contained in:
parent
8c1c7de73b
commit
01f8e5d872
1 changed files with 21 additions and 0 deletions
|
@ -1719,6 +1719,12 @@ static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SLIM_3_TX", MSM_BACKEND_DAI_SLIMBUS_3_TX,
|
||||
MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("PRIMARY_I2S_TX", MSM_BACKEND_DAI_PRI_I2S_TX,
|
||||
MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_AFE_PCM_TX,
|
||||
MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
|
||||
|
@ -1749,6 +1755,9 @@ static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX,
|
||||
MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
SOC_SINGLE_EXT("AFE_PCM_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX,
|
||||
MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
|
||||
|
@ -1758,6 +1767,9 @@ static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_SLIMBUS_3_RX,
|
||||
MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
SOC_SINGLE_EXT("AFE_PCM_RX", MSM_BACKEND_DAI_SLIMBUS_3_RX,
|
||||
MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
};
|
||||
static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
|
||||
SOC_SINGLE_EXT("SLIM_1_TX", MSM_BACKEND_DAI_INT_BT_SCO_RX,
|
||||
|
@ -1769,6 +1781,9 @@ static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("INTERNAL_FM_TX", MSM_BACKEND_DAI_AFE_PCM_RX,
|
||||
MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
SOC_SINGLE_EXT("SLIM_1_TX", MSM_BACKEND_DAI_AFE_PCM_RX,
|
||||
MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
};
|
||||
|
||||
|
||||
|
@ -2504,6 +2519,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
|
||||
{"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
|
||||
{"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
|
||||
{"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
|
||||
{"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
|
||||
|
||||
{"AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
|
||||
|
@ -2516,6 +2532,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
|
||||
{"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
|
||||
{"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
|
||||
{"Voice Stub Tx Mixer", "PRIMARY_I2S_TX", "PRI_I2S_TX"},
|
||||
{"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
|
||||
{"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
|
||||
|
||||
{"STUB_RX Mixer", "Voice Stub", "VOICE_STUB_DL"},
|
||||
|
@ -2526,16 +2544,19 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"MI2S_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
|
||||
{"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
|
||||
{"HDMI_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
|
||||
{"AFE_PCM_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
|
||||
|
||||
{"SLIMBUS_3_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
|
||||
{"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
|
||||
|
||||
{"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
|
||||
{"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
|
||||
{"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
|
||||
{"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
|
||||
{"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
|
||||
{"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
|
||||
{"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
|
||||
{"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
|
||||
{"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue