|
@@ -540,6 +540,8 @@ struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
|
|
|
LPASS_BE_USB_AUDIO_TX},
|
|
|
{ DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
|
|
|
LPASS_BE_DISPLAY_PORT},
|
|
|
+ { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
|
|
|
+ LPASS_BE_DISPLAY_PORT1},
|
|
|
{ AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0, {0},
|
|
|
LPASS_BE_TERT_AUXPCM_RX},
|
|
|
{ AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0, {0},
|
|
@@ -2895,7 +2897,7 @@ static const char *const be_name[] = {
|
|
|
"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
|
|
|
"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
|
|
|
"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
|
|
|
-"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX",
|
|
|
+"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
|
|
|
"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
|
|
|
"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
|
|
|
"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
|
|
@@ -5186,6 +5188,73 @@ static const struct snd_kcontrol_new display_port_mixer_controls[] = {
|
|
|
msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
+static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+};
|
|
|
+
|
|
|
/* incall music delivery mixer */
|
|
|
static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
|
|
|
SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
|
|
@@ -9763,6 +9832,29 @@ MSM_BACKEND_DAI_DISPLAY_PORT_RX,
|
|
|
msm_routing_put_voice_mixer),
|
|
|
};
|
|
|
|
|
|
+static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
|
|
|
+ SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
|
|
|
+ msm_routing_put_voice_mixer),
|
|
|
+ SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_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_DISPLAY_PORT_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_DISPLAY_PORT_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_DISPLAY_PORT_RX_1,
|
|
|
+ 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_DOUBLE_EXT("Voip", SND_SOC_NOPM,
|
|
|
MSM_BACKEND_DAI_INT_BT_SCO_RX,
|
|
@@ -11049,6 +11141,13 @@ static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
|
|
|
msm_routing_put_port_mixer),
|
|
|
};
|
|
|
|
|
|
+static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
|
|
|
+ SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
|
|
|
+ MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
|
|
|
+ msm_routing_put_port_mixer),
|
|
|
+};
|
|
|
+
|
|
|
static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
|
|
|
SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
|
|
|
MSM_BACKEND_DAI_SEC_I2S_RX,
|
|
@@ -15180,6 +15279,8 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
|
|
|
SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
|
|
|
SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
|
|
|
0, 0, 0, 0),
|
|
|
+ SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
|
|
|
+ 0, 0, 0, 0),
|
|
|
SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
|
|
|
SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
|
|
|
0, 0, 0, 0),
|
|
@@ -15523,6 +15624,8 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
|
|
|
hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
|
|
|
SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
|
|
|
display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
|
|
|
+ SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
|
|
|
+ display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
|
|
|
SND_SOC_DAPM_MIXER("SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
|
|
|
spdif_rx_mixer_controls, ARRAY_SIZE(spdif_rx_mixer_controls)),
|
|
|
SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
|
|
@@ -15845,6 +15948,9 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
|
|
|
SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
|
|
|
SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
|
|
|
ARRAY_SIZE(display_port_rx_port_mixer_controls)),
|
|
|
+ SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port1 Mixer",
|
|
|
+ SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
|
|
|
+ ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
|
|
|
SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
|
|
|
SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
|
|
|
ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
|
|
@@ -15949,6 +16055,9 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
|
|
|
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)),
|
|
|
+ SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
|
|
|
+ SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
|
|
|
+ ARRAY_SIZE(display_port_rx1_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)),
|
|
@@ -16142,6 +16251,24 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
|
|
|
{"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
|
|
|
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
|
|
|
+ {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
|
|
|
+ {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
|
|
|
+
|
|
|
{"SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
|
|
|
{"SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
|
|
|
{"SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
|
|
@@ -17454,6 +17581,13 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
|
|
|
{"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
|
|
|
|
|
|
+ {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
|
|
|
+ {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
|
|
|
+ {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
|
|
|
+ {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
|
|
|
+ {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
|
|
|
+ {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_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"},
|
|
@@ -18568,6 +18702,9 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
|
|
|
{"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
|
|
|
|
|
|
+ {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
|
|
|
+ {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
|
|
|
+
|
|
|
{"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
|
|
|
{"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
|
|
|
|
|
@@ -18643,6 +18780,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"BE_OUT", NULL, "USB_AUDIO_RX"},
|
|
|
{"BE_OUT", NULL, "HDMI"},
|
|
|
{"BE_OUT", NULL, "DISPLAY_PORT"},
|
|
|
+ {"BE_OUT", NULL, "DISPLAY_PORT1"},
|
|
|
{"BE_OUT", NULL, "SPDIF_RX"},
|
|
|
{"BE_OUT", NULL, "MI2S_RX"},
|
|
|
{"BE_OUT", NULL, "QUAT_MI2S_RX"},
|