mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 00:00:00 -04:00
Merge "asoc: routing: Add support to use compress path for ec ref loopback"
This commit is contained in:
commit
01292a95ba
2 changed files with 864 additions and 74 deletions
|
|
@ -1534,9 +1534,16 @@ static int msm_compr_configure_dsp_for_capture(struct snd_compr_stream *cstream)
|
|||
prtd->codec,
|
||||
bits_per_sample, true, enc_cfg_id);
|
||||
} else {
|
||||
ret = q6asm_open_read_v4(prtd->audio_client,
|
||||
prtd->codec,
|
||||
bits_per_sample, false, enc_cfg_id);
|
||||
if (q6core_get_avcs_api_version_per_service(
|
||||
APRV2_IDS_SERVICE_ID_ADSP_ASM_V) >=
|
||||
ADSP_ASM_API_VERSION_V2)
|
||||
ret = q6asm_open_read_v5(prtd->audio_client,
|
||||
prtd->codec, bits_per_sample,
|
||||
false, enc_cfg_id);
|
||||
else
|
||||
ret = q6asm_open_read_v4(prtd->audio_client,
|
||||
prtd->codec, bits_per_sample,
|
||||
false, enc_cfg_id);
|
||||
}
|
||||
if (ret < 0) {
|
||||
pr_err("%s: q6asm_open_read failed:%d\n",
|
||||
|
|
@ -1607,7 +1614,17 @@ static int msm_compr_configure_dsp_for_capture(struct snd_compr_stream *cstream)
|
|||
prtd->num_channels, prtd->codec,
|
||||
(void *)&prtd->codec_param.codec.options.generic);
|
||||
} else if (prtd->compr_passthr == LEGACY_PCM) {
|
||||
ret = q6asm_enc_cfg_blk_pcm_format_support_v4(prtd->audio_client,
|
||||
if (q6core_get_avcs_api_version_per_service(
|
||||
APRV2_IDS_SERVICE_ID_ADSP_ASM_V) >=
|
||||
ADSP_ASM_API_VERSION_V2)
|
||||
ret = q6asm_enc_cfg_blk_pcm_format_support_v5(
|
||||
prtd->audio_client,
|
||||
prtd->sample_rate, prtd->num_channels,
|
||||
bits_per_sample, sample_word_size,
|
||||
ASM_LITTLE_ENDIAN, DEFAULT_QF);
|
||||
else
|
||||
ret = q6asm_enc_cfg_blk_pcm_format_support_v4(
|
||||
prtd->audio_client,
|
||||
prtd->sample_rate, prtd->num_channels,
|
||||
bits_per_sample, sample_word_size,
|
||||
ASM_LITTLE_ENDIAN, DEFAULT_QF);
|
||||
|
|
|
|||
|
|
@ -3440,6 +3440,14 @@ static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
|
|||
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
|
||||
static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
|
||||
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
|
||||
static SOC_ENUM_SINGLE_DECL(mm18_channel_mux,
|
||||
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, ch_mixer);
|
||||
static SOC_ENUM_SINGLE_DECL(mm19_channel_mux,
|
||||
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, ch_mixer);
|
||||
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_DOUBLE_DECL(mm1_ch1_enum,
|
||||
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
|
||||
|
|
@ -3457,6 +3465,22 @@ static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
|
|||
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
|
||||
static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
|
||||
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
|
||||
static SOC_ENUM_DOUBLE_DECL(mm18_ch1_enum,
|
||||
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 0, be_name);
|
||||
static SOC_ENUM_DOUBLE_DECL(mm18_ch2_enum,
|
||||
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA18, 1, be_name);
|
||||
static SOC_ENUM_DOUBLE_DECL(mm19_ch1_enum,
|
||||
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 0, be_name);
|
||||
static SOC_ENUM_DOUBLE_DECL(mm19_ch2_enum,
|
||||
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA19, 1, be_name);
|
||||
static SOC_ENUM_DOUBLE_DECL(mm28_ch1_enum,
|
||||
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 0, be_name);
|
||||
static SOC_ENUM_DOUBLE_DECL(mm28_ch2_enum,
|
||||
SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA28, 1, be_name);
|
||||
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 int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
|
||||
unsigned int channels,
|
||||
|
|
@ -3758,6 +3782,22 @@ static const struct snd_kcontrol_new channel_mixer_controls[] = {
|
|||
MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
|
||||
msm_pcm_get_channel_rule_index,
|
||||
msm_pcm_put_channel_rule_index),
|
||||
SOC_SINGLE_EXT("MultiMedia18 Channel Rule", SND_SOC_NOPM,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA18, 8, 0,
|
||||
msm_pcm_get_channel_rule_index,
|
||||
msm_pcm_put_channel_rule_index),
|
||||
SOC_SINGLE_EXT("MultiMedia19 Channel Rule", SND_SOC_NOPM,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA19, 8, 0,
|
||||
msm_pcm_get_channel_rule_index,
|
||||
msm_pcm_put_channel_rule_index),
|
||||
SOC_SINGLE_EXT("MultiMedia28 Channel Rule", SND_SOC_NOPM,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA28, 8, 0,
|
||||
msm_pcm_get_channel_rule_index,
|
||||
msm_pcm_put_channel_rule_index),
|
||||
SOC_SINGLE_EXT("MultiMedia29 Channel Rule", SND_SOC_NOPM,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA29, 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,
|
||||
|
|
@ -3783,6 +3823,22 @@ static const struct snd_kcontrol_new channel_mixer_controls[] = {
|
|||
MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
|
||||
msm_pcm_get_out_chs,
|
||||
msm_pcm_put_out_chs),
|
||||
SOC_SINGLE_EXT("MultiMedia18 Channels", SND_SOC_NOPM,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA18, 14, 0,
|
||||
msm_pcm_get_out_chs,
|
||||
msm_pcm_put_out_chs),
|
||||
SOC_SINGLE_EXT("MultiMedia19 Channels", SND_SOC_NOPM,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA19, 14, 0,
|
||||
msm_pcm_get_out_chs,
|
||||
msm_pcm_put_out_chs),
|
||||
SOC_SINGLE_EXT("MultiMedia28 Channels", SND_SOC_NOPM,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA28, 14, 0,
|
||||
msm_pcm_get_out_chs,
|
||||
msm_pcm_put_out_chs),
|
||||
SOC_SINGLE_EXT("MultiMedia29 Channels", SND_SOC_NOPM,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA29, 14, 0,
|
||||
msm_pcm_get_out_chs,
|
||||
msm_pcm_put_out_chs),
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
|
|
@ -3822,6 +3878,42 @@ static const struct snd_kcontrol_new channel_mixer_controls[] = {
|
|||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 Channel Mixer",
|
||||
.info = msm_pcm_channel_mixer_info,
|
||||
.get = msm_pcm_channel_mixer_get,
|
||||
.put = msm_pcm_channel_mixer_put,
|
||||
.private_value = (unsigned long)&(mm18_channel_mux)
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 Channel Mixer",
|
||||
.info = msm_pcm_channel_mixer_info,
|
||||
.get = msm_pcm_channel_mixer_get,
|
||||
.put = msm_pcm_channel_mixer_put,
|
||||
.private_value = (unsigned long)&(mm19_channel_mux)
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 Channel Mixer",
|
||||
.info = msm_pcm_channel_mixer_info,
|
||||
.get = msm_pcm_channel_mixer_get,
|
||||
.put = msm_pcm_channel_mixer_put,
|
||||
.private_value = (unsigned long)&(mm28_channel_mux)
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 Channel Mixer",
|
||||
.info = msm_pcm_channel_mixer_info,
|
||||
.get = msm_pcm_channel_mixer_get,
|
||||
.put = msm_pcm_channel_mixer_put,
|
||||
.private_value = (unsigned long)&(mm29_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,
|
||||
|
|
@ -4012,6 +4104,566 @@ static const struct snd_kcontrol_new channel_mixer_controls[] = {
|
|||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 0,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 1, }
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 2,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 3,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 4,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 5,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 6,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 7,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 8,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 9,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 10,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 11,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 12,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18, .rshift = 13,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 0,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 1, }
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 2,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 3,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 4,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 5,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 6,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 7,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 8,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 9,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 10,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 11,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 12,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19, .rshift = 13,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 0,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 1, }
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 2,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 3,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 4,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 5,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 6,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 7,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 8,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 9,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 10,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 11,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 12,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28, .rshift = 13,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .rshift = 0,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .rshift = 1, }
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .rshift = 2,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .rshift = 3,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .rshift = 4,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .rshift = 5,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .rshift = 6,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .rshift = 7,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .rshift = 8,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .rshift = 9,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .rshift = 10,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .rshift = 11,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .rshift = 12,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29, .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,
|
||||
|
|
@ -4084,6 +4736,78 @@ static const struct snd_kcontrol_new channel_mixer_controls[] = {
|
|||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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)&(mm18_ch1_enum)
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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)&(mm18_ch2_enum)
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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)&(mm19_ch1_enum)
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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)&(mm19_ch2_enum)
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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)&(mm28_ch1_enum)
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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)&(mm28_ch2_enum)
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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)&(mm29_ch1_enum)
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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)&(mm29_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,
|
||||
|
|
@ -4141,6 +4865,46 @@ static const struct snd_kcontrol_new channel_mixer_controls[] = {
|
|||
.private_value = (unsigned long)&(struct soc_multi_mixer_control)
|
||||
{ .shift = MSM_FRONTEND_DAI_MULTIMEDIA6,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia18 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_MULTIMEDIA18,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia19 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_MULTIMEDIA19,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia28 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_MULTIMEDIA28,}
|
||||
},
|
||||
{
|
||||
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
|
||||
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
|
||||
.name = "MultiMedia29 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_MULTIMEDIA29,}
|
||||
},
|
||||
};
|
||||
|
||||
static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
|
||||
|
|
@ -23247,6 +24011,7 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
|
||||
{"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
|
||||
{"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
|
||||
{"PRI_MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
|
||||
{"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
|
||||
{"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
|
||||
{"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
|
||||
|
|
@ -24492,6 +25257,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
|
||||
{"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
|
||||
{"MultiMedia18 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
|
||||
{"MultiMedia18 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
|
||||
{"MultiMedia18 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
|
||||
|
||||
{"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
|
||||
{"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
|
||||
|
|
@ -24500,6 +25267,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
|
||||
{"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
|
||||
{"MultiMedia19 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
|
||||
{"MultiMedia19 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
|
||||
{"MultiMedia19 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
|
||||
|
||||
{"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
|
||||
{"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
|
||||
|
|
@ -24508,6 +25277,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
|
||||
{"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
|
||||
{"MultiMedia28 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
|
||||
{"MultiMedia28 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
|
||||
{"MultiMedia28 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
|
||||
|
||||
{"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
|
||||
{"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
|
||||
|
|
@ -24516,6 +25287,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
|
||||
{"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
|
||||
{"MultiMedia29 Mixer", "AFE_LOOPBACK_TX", "AFE_LOOPBACK_TX"},
|
||||
{"MultiMedia29 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
|
||||
{"MultiMedia29 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"},
|
||||
|
|
|
|||
Loading…
Reference in a new issue