|
@@ -769,6 +769,9 @@ static struct msm_pcm_routing_fdai_data
|
|
|
{{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
|
|
|
{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
|
|
|
/* MULTIMEDIA29 */
|
|
|
+ {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
|
|
|
+ {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
|
|
|
+ /* MULTIMEDIA30 */
|
|
|
{{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
|
|
|
{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
|
|
|
/* VOIP */
|
|
@@ -3448,6 +3451,8 @@ static SOC_ENUM_SINGLE_DECL(mm28_channel_mux,
|
|
|
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, ch_mixer);
|
|
|
static SOC_ENUM_SINGLE_DECL(mm29_channel_mux,
|
|
|
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, ch_mixer);
|
|
|
+static SOC_ENUM_SINGLE_DECL(mm30_channel_mux,
|
|
|
+ SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, ch_mixer);
|
|
|
|
|
|
static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
|
|
|
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
|
|
@@ -3481,6 +3486,10 @@ static SOC_ENUM_DOUBLE_DECL(mm29_ch1_enum,
|
|
|
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 0, be_name);
|
|
|
static SOC_ENUM_DOUBLE_DECL(mm29_ch2_enum,
|
|
|
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA29, 1, be_name);
|
|
|
+static SOC_ENUM_DOUBLE_DECL(mm30_ch1_enum,
|
|
|
+ SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 0, be_name);
|
|
|
+static SOC_ENUM_DOUBLE_DECL(mm30_ch2_enum,
|
|
|
+ SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA30, 1, be_name);
|
|
|
|
|
|
static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
|
|
|
unsigned int channels,
|
|
@@ -3798,6 +3807,10 @@ static const struct snd_kcontrol_new channel_mixer_controls[] = {
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 8, 0,
|
|
|
msm_pcm_get_channel_rule_index,
|
|
|
msm_pcm_put_channel_rule_index),
|
|
|
+ SOC_SINGLE_EXT("MultiMedia30 Channel Rule", SND_SOC_NOPM,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 8, 0,
|
|
|
+ msm_pcm_get_channel_rule_index,
|
|
|
+ msm_pcm_put_channel_rule_index),
|
|
|
|
|
|
SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA1, 14, 0,
|
|
@@ -3839,6 +3852,10 @@ static const struct snd_kcontrol_new channel_mixer_controls[] = {
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 14, 0,
|
|
|
msm_pcm_get_out_chs,
|
|
|
msm_pcm_put_out_chs),
|
|
|
+ SOC_SINGLE_EXT("MultiMedia30 Channels", SND_SOC_NOPM,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 14, 0,
|
|
|
+ msm_pcm_get_out_chs,
|
|
|
+ msm_pcm_put_out_chs),
|
|
|
{
|
|
|
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
@@ -3914,6 +3931,15 @@ static const struct snd_kcontrol_new channel_mixer_controls[] = {
|
|
|
{
|
|
|
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Channel Mixer",
|
|
|
+ .info = msm_pcm_channel_mixer_info,
|
|
|
+ .get = msm_pcm_channel_mixer_get,
|
|
|
+ .put = msm_pcm_channel_mixer_put,
|
|
|
+ .private_value = (unsigned long)&(mm30_channel_mux)
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
.name = "MultiMedia1 Output Channel1",
|
|
|
.info = msm_pcm_channel_weight_info,
|
|
|
.get = msm_pcm_channel_weight_get,
|
|
@@ -4664,6 +4690,146 @@ static const struct snd_kcontrol_new channel_mixer_controls[] = {
|
|
|
{
|
|
|
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel1",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 0,}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel2",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 1, }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel3",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 2,}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel4",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 3,}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel5",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 4,}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel6",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 5,}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel7",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 6,}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel8",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 7,}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel9",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 8,}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel10",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 9,}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel11",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 10,}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel12",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 11,}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel13",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 12,}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel14",
|
|
|
+ .info = msm_pcm_channel_weight_info,
|
|
|
+ .get = msm_pcm_channel_weight_get,
|
|
|
+ .put = msm_pcm_channel_weight_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30, .rshift = 13,}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
.name = "MultiMedia1 Channel1",
|
|
|
.info = msm_pcm_channel_input_be_info,
|
|
|
.get = msm_pcm_channel_input_be_get,
|
|
@@ -4808,6 +4974,24 @@ static const struct snd_kcontrol_new channel_mixer_controls[] = {
|
|
|
{
|
|
|
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Channel1",
|
|
|
+ .info = msm_pcm_channel_input_be_info,
|
|
|
+ .get = msm_pcm_channel_input_be_get,
|
|
|
+ .put = msm_pcm_channel_input_be_put,
|
|
|
+ .private_value = (unsigned long)&(mm30_ch1_enum)
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Channel2",
|
|
|
+ .info = msm_pcm_channel_input_be_info,
|
|
|
+ .get = msm_pcm_channel_input_be_get,
|
|
|
+ .put = msm_pcm_channel_input_be_put,
|
|
|
+ .private_value = (unsigned long)&(mm30_ch2_enum)
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
.name = "MultiMedia1 Output Channel Map",
|
|
|
.info = msm_pcm_channel_output_map_info,
|
|
|
.get = msm_pcm_channel_output_map_get,
|
|
@@ -4905,6 +5089,16 @@ static const struct snd_kcontrol_new channel_mixer_controls[] = {
|
|
|
.private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
{ .shift = MSM_FRONTEND_DAI_MULTIMEDIA29,}
|
|
|
},
|
|
|
+ {
|
|
|
+ .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
|
|
+ .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
|
|
+ .name = "MultiMedia30 Output Channel Map",
|
|
|
+ .info = msm_pcm_channel_output_map_info,
|
|
|
+ .get = msm_pcm_channel_output_map_get,
|
|
|
+ .put = msm_pcm_channel_output_map_put,
|
|
|
+ .private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
|
|
+ { .shift = MSM_FRONTEND_DAI_MULTIMEDIA30,}
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
|
|
@@ -5591,6 +5785,10 @@ static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_PRI_I2S_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_PRI_I2S_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
|
|
@@ -5682,6 +5880,10 @@ static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_SEC_I2S_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_SEC_I2S_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
|
|
@@ -5773,6 +5975,10 @@ static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_PRI_SPDIF_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_PRI_SPDIF_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
|
|
@@ -5864,6 +6070,10 @@ static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_SEC_SPDIF_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_SEC_SPDIF_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
|
|
@@ -6026,6 +6236,10 @@ static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_SLIMBUS_5_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_SLIMBUS_5_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
|
|
@@ -6117,6 +6331,10 @@ static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_SLIMBUS_0_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_SLIMBUS_0_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
|
|
@@ -6208,6 +6426,10 @@ static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_MI2S_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_MI2S_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
|
|
@@ -6299,6 +6521,10 @@ static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
|
|
@@ -6390,6 +6616,10 @@ static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_QUINARY_MI2S_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_QUINARY_MI2S_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
|
|
|
};
|
|
|
|
|
@@ -6566,6 +6796,10 @@ static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
|
|
@@ -6664,6 +6898,10 @@ static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
|
|
@@ -6755,6 +6993,10 @@ static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_PRI_MI2S_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_PRI_MI2S_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
|
|
|
};
|
|
|
|
|
@@ -6981,6 +7223,10 @@ static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_HDMI_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_HDMI_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new display_port_mixer_controls[] = {
|
|
@@ -8265,6 +8511,10 @@ static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_INT_BT_SCO_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_INT_BT_SCO_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
|
|
@@ -8427,6 +8677,10 @@ static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_INT_FM_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_INT_FM_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
|
|
@@ -8518,6 +8772,10 @@ static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_AFE_PCM_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_AFE_PCM_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
|
|
@@ -8613,6 +8871,10 @@ static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_AUXPCM_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_AUXPCM_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
|
|
@@ -8708,6 +8970,10 @@ static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
|
|
|
MSM_BACKEND_DAI_SEC_AUXPCM_RX,
|
|
|
MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("MultiMedia30", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_SEC_AUXPCM_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
|
|
@@ -14215,7 +14481,7 @@ static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
|
|
|
msm_routing_put_audio_mixer),
|
|
|
SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
|
|
|
MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
|
|
|
- MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
|
|
|
msm_routing_put_audio_mixer),
|
|
|
SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
|
|
|
MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
|
|
@@ -14402,6 +14668,119 @@ static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
|
|
|
msm_routing_put_audio_mixer),
|
|
|
};
|
|
|
|
|
|
+static const struct snd_kcontrol_new mmul30_mixer_controls[] = {
|
|
|
+ SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_SLIMBUS_0_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_SLIMBUS_1_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_PRI_MI2S_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_INT3_MI2S_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_INT_FM_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_INT_BT_SCO_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_AFE_PCM_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_INCALL_RECORD_RX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_INCALL_RECORD_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
|
|
|
+ msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
|
|
|
+ msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
|
|
|
+ msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
|
|
|
+ msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
|
|
|
+ msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0,
|
|
|
+ msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_PRI_SPDIF_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_SEC_SPDIF_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+ SOC_DOUBLE_EXT("AFE_LOOPBACK_TX", SND_SOC_NOPM,
|
|
|
+ MSM_BACKEND_DAI_AFE_LOOPBACK_TX,
|
|
|
+ MSM_FRONTEND_DAI_MULTIMEDIA30, 1, 0, msm_routing_get_audio_mixer,
|
|
|
+ msm_routing_put_audio_mixer),
|
|
|
+};
|
|
|
+
|
|
|
static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
|
|
|
SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
|
|
|
MSM_BACKEND_DAI_PRI_I2S_RX,
|
|
@@ -21878,6 +22257,7 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
|
|
|
SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
|
|
|
SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
|
|
|
SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
|
|
|
+ SND_SOC_DAPM_AIF_OUT("MM_UL30", "MultiMedia30 Capture", 0, 0, 0, 0),
|
|
|
SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
|
|
|
SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
|
|
|
"VoiceMMode1 Playback", 0, 0, 0, 0),
|
|
@@ -22960,6 +23340,8 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
|
|
|
mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
|
|
|
SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
|
|
|
mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
|
|
|
+ SND_SOC_DAPM_MIXER("MultiMedia30 Mixer", SND_SOC_NOPM, 0, 0,
|
|
|
+ mmul30_mixer_controls, ARRAY_SIZE(mmul30_mixer_controls)),
|
|
|
SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
|
|
|
auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
|
|
|
SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
|
|
@@ -23889,6 +24271,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"MultiMedia28 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
|
|
|
{"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
|
|
|
{"MultiMedia29 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
|
|
|
+ {"MultiMedia30 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
|
|
|
+ {"MultiMedia30 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
|
|
|
{"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
|
|
|
{"MultiMedia8 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
|
|
|
{"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
|
|
@@ -23898,21 +24282,25 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
|
|
|
{"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
|
|
|
{"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
|
|
|
+ {"MultiMedia30 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
|
|
|
{"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
|
|
|
{"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
|
|
|
{"MultiMedia19 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
|
|
|
{"MultiMedia28 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
|
|
|
{"MultiMedia29 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
|
|
|
+ {"MultiMedia30 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
|
|
|
{"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
|
|
|
{"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
|
|
|
{"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
|
|
|
{"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
|
|
|
{"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
|
|
|
+ {"MultiMedia30 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
|
|
|
{"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
|
|
|
{"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
|
|
|
{"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
|
|
|
{"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
|
|
|
{"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
|
|
|
+ {"MultiMedia30 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
|
|
|
{"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
|
|
|
{"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
|
|
|
{"MultiMedia3 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
|
|
@@ -23931,10 +24319,12 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"MultiMedia19 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
|
|
|
{"MultiMedia28 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
|
|
|
{"MultiMedia29 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
|
|
|
+ {"MultiMedia30 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
|
|
|
{"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
|
|
|
{"MultiMedia19 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
|
|
|
{"MultiMedia28 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
|
|
|
{"MultiMedia29 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
|
|
|
+ {"MultiMedia30 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
|
|
|
|
|
|
{"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
|
|
|
{"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
|
|
@@ -24772,6 +25162,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
|
|
|
{"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
|
|
|
{"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
|
|
|
+ {"MultiMedia30 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
|
|
|
{"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
|
|
|
{"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
|
|
|
{"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
|
|
@@ -25300,6 +25691,16 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"MultiMedia29 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
|
|
|
{"MultiMedia29 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
|
|
|
|
|
|
+ {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
|
|
|
+ {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
|
|
|
+ {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
|
|
|
+ {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
|
|
|
+ {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
|
|
|
+ {"MultiMedia30 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
|
|
|
+ {"MultiMedia30 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
|
|
|
+ {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
|
|
|
+ {"MultiMedia30 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
|
|
|
+
|
|
|
{"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
|
|
|
{"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
|
|
|
{"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
|
|
@@ -25383,6 +25784,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
|
|
|
{"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
|
|
|
{"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
|
|
|
+ {"MultiMedia30 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
|
|
|
{"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
|
|
|
{"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
|
|
|
{"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
|
|
@@ -25394,6 +25796,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
|
|
|
{"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
|
|
|
{"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
|
|
|
+ {"MultiMedia30 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
|
|
|
{"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
|
|
|
{"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
|
|
|
{"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
|
|
@@ -25407,6 +25810,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
|
|
|
{"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
|
|
|
{"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
|
|
|
+ {"MultiMedia30 Mixer", "AFE_PCM_TX", "PCM_TX"},
|
|
|
{"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
|
|
|
{"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
|
|
|
{"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
|
|
@@ -25429,6 +25833,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"MM_UL27", NULL, "MultiMedia27 Mixer"},
|
|
|
{"MM_UL28", NULL, "MultiMedia28 Mixer"},
|
|
|
{"MM_UL29", NULL, "MultiMedia29 Mixer"},
|
|
|
+ {"MM_UL30", NULL, "MultiMedia30 Mixer"},
|
|
|
|
|
|
{"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
|
|
|
{"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
|
|
@@ -25900,6 +26305,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|
|
{"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
|
|
|
{"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
|
|
|
{"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
|
|
|
+ {"MM_UL30", NULL, "AUDIO_REF_EC_UL30 MUX"},
|
|
|
|
|
|
{"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
|
|
|
{"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
|