Merge fed8cf2681 on remote branch

Change-Id: I25e578d298f818aedf0f585e1e917a988e6540f1
This commit is contained in:
Linux Build Service Account 2022-11-01 23:30:05 -07:00
commit 412ab65401
10 changed files with 85 additions and 55 deletions

View file

@ -21,7 +21,7 @@ static struct snd_soc_dai_driver msm_stub_dais[] = {
.channels_min = 1,
.channels_max = 32,
.rates = SNDRV_PCM_RATE_8000_48000,
.formats = SNDRV_PCM_FMTBIT_S16_LE,
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
},
},
{

View file

@ -1,6 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#ifndef WCD934X_ROUTING_H
#define WCD934X_ROUTING_H
@ -71,41 +72,46 @@ const struct snd_soc_dapm_route tavil_slim_audio_map[] = {
{"SLIM TX11", NULL, "CDC_IF TX11 MUX"},
{"SLIM TX13", NULL, "CDC_IF TX13 MUX"},
{"SLIM RX0 MUX", "AIF1_PB", "AIF1 PB"},
{"SLIM RX1 MUX", "AIF1_PB", "AIF1 PB"},
{"SLIM RX2 MUX", "AIF1_PB", "AIF1 PB"},
{"SLIM RX3 MUX", "AIF1_PB", "AIF1 PB"},
{"SLIM RX4 MUX", "AIF1_PB", "AIF1 PB"},
{"SLIM RX5 MUX", "AIF1_PB", "AIF1 PB"},
{"SLIM RX6 MUX", "AIF1_PB", "AIF1 PB"},
{"SLIM RX7 MUX", "AIF1_PB", "AIF1 PB"},
{"AIF4 PB MIX", NULL, "AIF4 PB"},
{"AIF3 PB MIX", NULL, "AIF3 PB"},
{"AIF2 PB MIX", NULL, "AIF2 PB"},
{"AIF1 PB MIX", NULL, "AIF1 PB"},
{"SLIM RX0 MUX", "AIF2_PB", "AIF2 PB"},
{"SLIM RX1 MUX", "AIF2_PB", "AIF2 PB"},
{"SLIM RX2 MUX", "AIF2_PB", "AIF2 PB"},
{"SLIM RX3 MUX", "AIF2_PB", "AIF2 PB"},
{"SLIM RX4 MUX", "AIF2_PB", "AIF2 PB"},
{"SLIM RX5 MUX", "AIF2_PB", "AIF2 PB"},
{"SLIM RX6 MUX", "AIF2_PB", "AIF2 PB"},
{"SLIM RX7 MUX", "AIF2_PB", "AIF2 PB"},
{"SLIM RX0 MUX", "AIF1_PB", "AIF1 PB MIX"},
{"SLIM RX1 MUX", "AIF1_PB", "AIF1 PB MIX"},
{"SLIM RX2 MUX", "AIF1_PB", "AIF1 PB MIX"},
{"SLIM RX3 MUX", "AIF1_PB", "AIF1 PB MIX"},
{"SLIM RX4 MUX", "AIF1_PB", "AIF1 PB MIX"},
{"SLIM RX5 MUX", "AIF1_PB", "AIF1 PB MIX"},
{"SLIM RX6 MUX", "AIF1_PB", "AIF1 PB MIX"},
{"SLIM RX7 MUX", "AIF1_PB", "AIF1 PB MIX"},
{"SLIM RX0 MUX", "AIF3_PB", "AIF3 PB"},
{"SLIM RX1 MUX", "AIF3_PB", "AIF3 PB"},
{"SLIM RX2 MUX", "AIF3_PB", "AIF3 PB"},
{"SLIM RX3 MUX", "AIF3_PB", "AIF3 PB"},
{"SLIM RX4 MUX", "AIF3_PB", "AIF3 PB"},
{"SLIM RX5 MUX", "AIF3_PB", "AIF3 PB"},
{"SLIM RX6 MUX", "AIF3_PB", "AIF3 PB"},
{"SLIM RX7 MUX", "AIF3_PB", "AIF3 PB"},
{"SLIM RX0 MUX", "AIF2_PB", "AIF2 PB MIX"},
{"SLIM RX1 MUX", "AIF2_PB", "AIF2 PB MIX"},
{"SLIM RX2 MUX", "AIF2_PB", "AIF2 PB MIX"},
{"SLIM RX3 MUX", "AIF2_PB", "AIF2 PB MIX"},
{"SLIM RX4 MUX", "AIF2_PB", "AIF2 PB MIX"},
{"SLIM RX5 MUX", "AIF2_PB", "AIF2 PB MIX"},
{"SLIM RX6 MUX", "AIF2_PB", "AIF2 PB MIX"},
{"SLIM RX7 MUX", "AIF2_PB", "AIF2 PB MIX"},
{"SLIM RX0 MUX", "AIF4_PB", "AIF4 PB"},
{"SLIM RX1 MUX", "AIF4_PB", "AIF4 PB"},
{"SLIM RX2 MUX", "AIF4_PB", "AIF4 PB"},
{"SLIM RX3 MUX", "AIF4_PB", "AIF4 PB"},
{"SLIM RX4 MUX", "AIF4_PB", "AIF4 PB"},
{"SLIM RX5 MUX", "AIF4_PB", "AIF4 PB"},
{"SLIM RX6 MUX", "AIF4_PB", "AIF4 PB"},
{"SLIM RX7 MUX", "AIF4_PB", "AIF4 PB"},
{"SLIM RX0 MUX", "AIF3_PB", "AIF3 PB MIX"},
{"SLIM RX1 MUX", "AIF3_PB", "AIF3 PB MIX"},
{"SLIM RX2 MUX", "AIF3_PB", "AIF3 PB MIX"},
{"SLIM RX3 MUX", "AIF3_PB", "AIF3 PB MIX"},
{"SLIM RX4 MUX", "AIF3_PB", "AIF3 PB MIX"},
{"SLIM RX5 MUX", "AIF3_PB", "AIF3 PB MIX"},
{"SLIM RX6 MUX", "AIF3_PB", "AIF3 PB MIX"},
{"SLIM RX7 MUX", "AIF3_PB", "AIF3 PB MIX"},
{"SLIM RX0 MUX", "AIF4_PB", "AIF4 PB MIX"},
{"SLIM RX1 MUX", "AIF4_PB", "AIF4 PB MIX"},
{"SLIM RX2 MUX", "AIF4_PB", "AIF4 PB MIX"},
{"SLIM RX3 MUX", "AIF4_PB", "AIF4 PB MIX"},
{"SLIM RX4 MUX", "AIF4_PB", "AIF4 PB MIX"},
{"SLIM RX5 MUX", "AIF4_PB", "AIF4 PB MIX"},
{"SLIM RX6 MUX", "AIF4_PB", "AIF4 PB MIX"},
{"SLIM RX7 MUX", "AIF4_PB", "AIF4 PB MIX"},
{"SLIM RX0", NULL, "SLIM RX0 MUX"},
{"SLIM RX1", NULL, "SLIM RX1 MUX"},

View file

@ -7835,9 +7835,11 @@ static const struct snd_kcontrol_new lo2_mixer[] = {
};
static const struct snd_soc_dapm_widget tavil_dapm_slim_widgets[] = {
SND_SOC_DAPM_AIF_IN_E("AIF4 PB", "AIF4 Playback", 0, SND_SOC_NOPM,
AIF4_PB, 0, tavil_codec_enable_rx,
SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_AIF_IN("AIF4 PB", "AIF4 Playback", 0, SND_SOC_NOPM, 0, 0),
SND_SOC_DAPM_MIXER_E("AIF4 PB MIX", SND_SOC_NOPM, AIF4_PB, 0,
NULL, 0, tavil_codec_enable_rx,
SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_AIF_OUT_E("AIF4 VI", "VIfeed", 0, SND_SOC_NOPM,
AIF4_VIFEED, 0,
@ -7884,15 +7886,19 @@ static const struct snd_soc_dapm_widget tavil_dapm_slim_widgets[] = {
};
static const struct snd_soc_dapm_widget tavil_dapm_widgets[] = {
SND_SOC_DAPM_AIF_IN_E("AIF1 PB", "AIF1 Playback", 0, SND_SOC_NOPM,
AIF1_PB, 0, tavil_codec_enable_rx,
SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_AIF_IN_E("AIF2 PB", "AIF2 Playback", 0, SND_SOC_NOPM,
AIF2_PB, 0, tavil_codec_enable_rx,
SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_AIF_IN_E("AIF3 PB", "AIF3 Playback", 0, SND_SOC_NOPM,
AIF3_PB, 0, tavil_codec_enable_rx,
SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_AIF_IN("AIF1 PB", "AIF1 Playback", 0, SND_SOC_NOPM, 0, 0),
SND_SOC_DAPM_AIF_IN("AIF2 PB", "AIF2 Playback", 0, SND_SOC_NOPM, 0, 0),
SND_SOC_DAPM_AIF_IN("AIF3 PB", "AIF3 Playback", 0, SND_SOC_NOPM, 0, 0),
SND_SOC_DAPM_MIXER_E("AIF1 PB MIX", SND_SOC_NOPM, AIF1_PB, 0,
NULL, 0, tavil_codec_enable_rx,
SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_MIXER_E("AIF2 PB MIX", SND_SOC_NOPM, AIF2_PB, 0,
NULL, 0, tavil_codec_enable_rx,
SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_MIXER_E("AIF3 PB MIX", SND_SOC_NOPM, AIF3_PB, 0,
NULL, 0, tavil_codec_enable_rx,
SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
WCD_DAPM_MUX("CDC_IF RX0 MUX", WCD934X_RX0, cdc_if_rx0),
WCD_DAPM_MUX("CDC_IF RX1 MUX", WCD934X_RX1, cdc_if_rx1),

View file

@ -86,7 +86,7 @@ static struct snd_soc_dai_driver msm_dai_stub_dai_rx = {
.aif_name = "STUB_RX",
.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
SNDRV_PCM_RATE_16000,
.formats = SNDRV_PCM_FMTBIT_S16_LE,
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
.channels_min = 1,
.channels_max = 2,
.rate_min = 8000,
@ -104,7 +104,8 @@ static struct snd_soc_dai_driver msm_dai_stub_dai_tx[] = {
.aif_name = "STUB_TX",
.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
SNDRV_PCM_RATE_16000,
.formats = SNDRV_PCM_FMTBIT_S16_LE,
.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S24_3LE |
SNDRV_PCM_FMTBIT_S32_LE,
.channels_min = 1,
.channels_max = 2,
.rate_min = 8000,
@ -120,7 +121,8 @@ static struct snd_soc_dai_driver msm_dai_stub_dai_tx[] = {
.aif_name = "STUB_1_TX",
.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
SNDRV_PCM_RATE_16000,
.formats = SNDRV_PCM_FMTBIT_S16_LE,
.formats = SNDRV_PCM_FMTBIT_S16_LE |SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S24_3LE |
SNDRV_PCM_FMTBIT_S32_LE,
.channels_min = 1,
.channels_max = 2,
.rate_min = 8000,

View file

@ -1524,6 +1524,7 @@ int __init msm_voice_host_init(void)
void msm_voice_host_exit(void)
{
platform_driver_unregister(&msm_pcm_driver);
mutex_destroy(&hpcm_drv.lock);
}
MODULE_DESCRIPTION("PCM module platform driver");

View file

@ -964,8 +964,13 @@ static int msm_pcm_channel_mixer_cfg_ctl_put(struct snd_kcontrol *kcontrol,
__func__, chmixer_pspd->input_channel);
return -EINVAL;
}
q6asm_map_channels(asm_ch_map,
ret = q6asm_map_channels(asm_ch_map,
chmixer_pspd->input_channel, false);
if (ret < 0) {
pr_err("%s q6asm_map_channels failed\n", __func__);
return ret;
}
for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
chmixer_pspd->in_ch_map[i] = asm_ch_map[i];
chmixer_pspd->override_in_ch_map = true;
@ -977,8 +982,12 @@ static int msm_pcm_channel_mixer_cfg_ctl_put(struct snd_kcontrol *kcontrol,
__func__, chmixer_pspd->output_channel);
return -EINVAL;
}
q6asm_map_channels(asm_ch_map,
ret = q6asm_map_channels(asm_ch_map,
chmixer_pspd->output_channel, false);
if (ret < 0) {
pr_err("%s q6asm_map_channels failed\n", __func__);
return ret;
}
for (i = 0; i < PCM_FORMAT_MAX_NUM_CHANNEL_V8; i++)
chmixer_pspd->out_ch_map[i] = asm_ch_map[i];
chmixer_pspd->override_out_ch_map = true;

View file

@ -25219,7 +25219,7 @@ static const struct snd_kcontrol_new app_type_cfg_controls[] = {
0x7FFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
msm_routing_put_app_type_cfg_control),
SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
0x7FFFFFFF, 0, 4, NULL, msm_routing_put_app_type_gain_control)
};
static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,

View file

@ -32053,7 +32053,7 @@ static const struct snd_kcontrol_new app_type_cfg_controls[] = {
0x7FFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
msm_routing_put_app_type_cfg_control),
SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
0x7FFFFFFF, 0, 4, NULL, msm_routing_put_app_type_gain_control)
};
static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,

View file

@ -850,7 +850,12 @@ int __init msm_pcm_voice_init(void)
void msm_pcm_voice_exit(void)
{
int i = 0;
platform_driver_unregister(&msm_pcm_driver);
for (i = 0; i < VOICE_SESSION_INDEX_MAX; i++)
mutex_destroy(&voice_info[i].lock);
}
MODULE_DESCRIPTION("Voice PCM module platform driver");

View file

@ -1699,6 +1699,7 @@ int __init msm_pcm_voip_init(void)
void msm_pcm_voip_exit(void)
{
platform_driver_unregister(&msm_pcm_driver);
mutex_destroy(&voip_info.lock);
}
MODULE_DESCRIPTION("PCM module platform driver");