ASoC: Enable display-port for voice calls

Add mixer controls to enable voice calls over
display-port.

CRs-Fixed: 2151849
Change-Id: Id245b9c5b97d55c1db60e897954cc94eecd7f42d
Signed-off-by: Aalique Grahame <agrahame@codeaurora.org>
This commit is contained in:
Aalique Grahame
2017-11-28 13:24:13 -08:00
committad av Gerrit - the friendly Code Review server
förälder 50a527cf07
incheckning e4fd7d5484

Visa fil

@@ -3620,6 +3620,10 @@ static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
msm_route_ec_ref_rx = 22;
ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
break;
case 23:
msm_route_ec_ref_rx = 23;
ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
break;
default:
msm_route_ec_ref_rx = 0; /* NONE */
pr_err("%s EC ref rx %ld not valid\n",
@@ -3642,7 +3646,7 @@ static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
"SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
"QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
"TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
"INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX"};
"INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT"};
static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
@@ -8091,6 +8095,33 @@ static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
msm_routing_put_voice_mixer),
};
static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
msm_routing_put_voice_mixer),
SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
msm_routing_put_voice_stub_mixer),
SOC_SINGLE_EXT("Voice2 Stub", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
msm_routing_put_voice_stub_mixer),
SOC_SINGLE_EXT("VoLTE Stub", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
msm_routing_put_voice_stub_mixer),
SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
msm_routing_put_voice_mixer),
SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
msm_routing_put_voice_mixer),
SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
msm_routing_put_voice_mixer),
SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_DISPLAY_PORT_RX,
MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
msm_routing_put_voice_mixer),
};
static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_INT_BT_SCO_RX,
MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
@@ -13552,6 +13583,9 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
ARRAY_SIZE(usb_rx_port_mixer_controls)),
SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
/* lsm mixer definitions */
SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
@@ -15029,6 +15063,16 @@ static const struct snd_soc_dapm_route intercon[] = {
{"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
{"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
{"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
{"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
{"DISPLAY_PORT_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
{"DISPLAY_PORT_RX_Voice Mixer", "Voice2 Stub", "VOICE2_STUB_DL"},
{"DISPLAY_PORT_RX_Voice Mixer", "VoLTE Stub", "VOLTE_STUB_DL"},
{"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
{"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
{"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
{"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
{"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
{"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
{"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},