Merge "ASoC: msmcobalt: add support for MI2S and AUX PCM"
This commit is contained in:
commit
1b95c57dc7
9 changed files with 1977 additions and 47 deletions
23
Documentation/devicetree/bindings/sound/qcom-audio-dev.txt
Executable file → Normal file
23
Documentation/devicetree/bindings/sound/qcom-audio-dev.txt
Executable file → Normal file
|
@ -1646,6 +1646,18 @@ Optional Properties:
|
|||
secondary -> Secondary MI2S interface
|
||||
tertiary -> Tertiary MI2S interface
|
||||
quaternary -> Quaternary MI2S interface
|
||||
- qcom,mi2s-audio-intf: This property is used to inform machine driver
|
||||
if mi2s backend dailink has to be added as part of the sound card dai-links.
|
||||
- qcom,auxpcm-audio-intf: This property is used to inform machine driver
|
||||
if auxpcm backend dailink has to be added as part of the sound card dai-links.
|
||||
- qcom,msm-mi2s-master: This property is used to inform machine driver
|
||||
if MSM is the clock master of mi2s. 1 means master and 0 means slave. The
|
||||
first entry is primary mi2s; the second entry is secondary mi2s, and so on.
|
||||
- reg: This property provides the AUX PCM/MI2S mux select register addresses
|
||||
and size.
|
||||
- reg_names: This property provides the name of the AUX PCM/MI2S mux select
|
||||
registers so the machine driver can retrieve the addresses. The order of the
|
||||
names has to match the order of the registers in "reg" property.
|
||||
- asoc-platform: This is phandle list containing the references to platform device
|
||||
nodes that are used as part of the sound card dai-links.
|
||||
- asoc-platform-names: This property contains list of platform names. The order of
|
||||
|
@ -1678,6 +1690,17 @@ Example:
|
|||
"csr_gp_io_mux_spkr_ctl",
|
||||
"csr_gp_io_lpaif_pri_pcm_pri_mode_muxsel";
|
||||
qcom,msm-ext-pa = "primary";
|
||||
qcom,mi2s-audio-intf;
|
||||
qcom,auxpcm-audio-intf;
|
||||
qcom,msm-mi2s-master = <1>, <0>, <1>, <1>;
|
||||
reg = <0x1711a000 0x4>,
|
||||
<0x1711b000 0x4>,
|
||||
<0x1711c000 0x4>,
|
||||
<0x1711d000 0x4>;
|
||||
reg-names = "lpaif_pri_mode_muxsel",
|
||||
"lpaif_sec_mode_muxsel",
|
||||
"lpaif_tert_mode_muxsel",
|
||||
"lpaif_quat_mode_muxsel";
|
||||
qcom,msm-mclk-freq = <9600000>;
|
||||
qcom,msm-mbhc-hphl-swh = <0>;
|
||||
qcom,msm-mbhc-gnd-swh = <0>;
|
||||
|
|
|
@ -896,20 +896,24 @@ struct adm_cmd_connect_afe_port_v5 {
|
|||
#define AFE_PORT_ID_TERTIARY_MI2S_TX 0x1005
|
||||
#define AFE_PORT_ID_QUATERNARY_MI2S_RX 0x1006
|
||||
#define AFE_PORT_ID_QUATERNARY_MI2S_TX 0x1007
|
||||
#define AUDIO_PORT_ID_I2S_RX 0x1008
|
||||
#define AUDIO_PORT_ID_I2S_RX 0x1008
|
||||
#define AFE_PORT_ID_DIGITAL_MIC_TX 0x1009
|
||||
#define AFE_PORT_ID_PRIMARY_PCM_RX 0x100A
|
||||
#define AFE_PORT_ID_PRIMARY_PCM_TX 0x100B
|
||||
#define AFE_PORT_ID_SECONDARY_PCM_RX 0x100C
|
||||
#define AFE_PORT_ID_SECONDARY_PCM_TX 0x100D
|
||||
#define AFE_PORT_ID_MULTICHAN_HDMI_RX 0x100E
|
||||
#define AFE_PORT_ID_SECONDARY_MI2S_RX_SD1 0x1010
|
||||
#define AFE_PORT_ID_QUINARY_MI2S_RX 0x1016
|
||||
#define AFE_PORT_ID_QUINARY_MI2S_TX 0x1017
|
||||
#define AFE_PORT_ID_SECONDARY_MI2S_RX_SD1 0x1010
|
||||
#define AFE_PORT_ID_TERTIARY_PCM_RX 0x1012
|
||||
#define AFE_PORT_ID_TERTIARY_PCM_TX 0x1013
|
||||
#define AFE_PORT_ID_QUATERNARY_PCM_RX 0x1014
|
||||
#define AFE_PORT_ID_QUATERNARY_PCM_TX 0x1015
|
||||
#define AFE_PORT_ID_QUINARY_MI2S_RX 0x1016
|
||||
#define AFE_PORT_ID_QUINARY_MI2S_TX 0x1017
|
||||
/* ID of the senary MI2S Rx port. */
|
||||
#define AFE_PORT_ID_SENARY_MI2S_RX 0x1018
|
||||
#define AFE_PORT_ID_SENARY_MI2S_RX 0x1018
|
||||
/* ID of the senary MI2S Tx port. */
|
||||
#define AFE_PORT_ID_SENARY_MI2S_TX 0x1019
|
||||
#define AFE_PORT_ID_SENARY_MI2S_TX 0x1019
|
||||
#define AFE_PORT_ID_SPDIF_RX 0x5000
|
||||
#define AFE_PORT_ID_RT_PROXY_PORT_001_RX 0x2000
|
||||
#define AFE_PORT_ID_RT_PROXY_PORT_001_TX 0x2001
|
||||
|
|
|
@ -183,6 +183,10 @@ enum {
|
|||
IDX_AFE_PORT_ID_USB_TX,
|
||||
/* IDX 124 */
|
||||
IDX_DISPLAY_PORT_RX,
|
||||
IDX_AFE_PORT_ID_TERTIARY_PCM_RX,
|
||||
IDX_AFE_PORT_ID_TERTIARY_PCM_TX,
|
||||
IDX_AFE_PORT_ID_QUATERNARY_PCM_RX,
|
||||
IDX_AFE_PORT_ID_QUATERNARY_PCM_TX,
|
||||
AFE_MAX_PORTS
|
||||
};
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -30,6 +30,9 @@
|
|||
|
||||
#define MSM_DAI_PRI_AUXPCM_DT_DEV_ID 1
|
||||
#define MSM_DAI_SEC_AUXPCM_DT_DEV_ID 2
|
||||
#define MSM_DAI_TERT_AUXPCM_DT_DEV_ID 3
|
||||
#define MSM_DAI_QUAT_AUXPCM_DT_DEV_ID 4
|
||||
|
||||
|
||||
#define spdif_clock_value(rate) (2*rate*32*2)
|
||||
#define CHANNEL_STATUS_SIZE 24
|
||||
|
@ -873,6 +876,22 @@ static int msm_dai_q6_auxpcm_prepare(struct snd_pcm_substream *substream,
|
|||
aux_dai_data->clk_set.clk_id =
|
||||
Q6AFE_LPASS_CLK_ID_SEC_PCM_EBIT;
|
||||
break;
|
||||
case MSM_DAI_TERT_AUXPCM_DT_DEV_ID:
|
||||
if (pcm_clk_rate)
|
||||
aux_dai_data->clk_set.clk_id =
|
||||
Q6AFE_LPASS_CLK_ID_TER_PCM_IBIT;
|
||||
else
|
||||
aux_dai_data->clk_set.clk_id =
|
||||
Q6AFE_LPASS_CLK_ID_TER_PCM_EBIT;
|
||||
break;
|
||||
case MSM_DAI_QUAT_AUXPCM_DT_DEV_ID:
|
||||
if (pcm_clk_rate)
|
||||
aux_dai_data->clk_set.clk_id =
|
||||
Q6AFE_LPASS_CLK_ID_QUAD_PCM_IBIT;
|
||||
else
|
||||
aux_dai_data->clk_set.clk_id =
|
||||
Q6AFE_LPASS_CLK_ID_QUAD_PCM_EBIT;
|
||||
break;
|
||||
default:
|
||||
dev_err(dai->dev, "%s: AUXPCM id: %d not supported\n",
|
||||
__func__, dai->id);
|
||||
|
@ -1058,7 +1077,59 @@ static struct snd_soc_dai_driver msm_dai_q6_aux_pcm_dai[] = {
|
|||
.ops = &msm_dai_q6_auxpcm_ops,
|
||||
.probe = msm_dai_q6_aux_pcm_probe,
|
||||
.remove = msm_dai_q6_dai_auxpcm_remove,
|
||||
}
|
||||
},
|
||||
{
|
||||
.playback = {
|
||||
.stream_name = "Tert AUX PCM Playback",
|
||||
.aif_name = "TERT_AUX_PCM_RX",
|
||||
.rates = (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000),
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
.channels_min = 1,
|
||||
.channels_max = 1,
|
||||
.rate_max = 16000,
|
||||
.rate_min = 8000,
|
||||
},
|
||||
.capture = {
|
||||
.stream_name = "Tert AUX PCM Capture",
|
||||
.aif_name = "TERT_AUX_PCM_TX",
|
||||
.rates = (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000),
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
.channels_min = 1,
|
||||
.channels_max = 1,
|
||||
.rate_max = 16000,
|
||||
.rate_min = 8000,
|
||||
},
|
||||
.id = MSM_DAI_TERT_AUXPCM_DT_DEV_ID,
|
||||
.ops = &msm_dai_q6_auxpcm_ops,
|
||||
.probe = msm_dai_q6_aux_pcm_probe,
|
||||
.remove = msm_dai_q6_dai_auxpcm_remove,
|
||||
},
|
||||
{
|
||||
.playback = {
|
||||
.stream_name = "Quat AUX PCM Playback",
|
||||
.aif_name = "QUAT_AUX_PCM_RX",
|
||||
.rates = (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000),
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
.channels_min = 1,
|
||||
.channels_max = 1,
|
||||
.rate_max = 16000,
|
||||
.rate_min = 8000,
|
||||
},
|
||||
.capture = {
|
||||
.stream_name = "Quat AUX PCM Capture",
|
||||
.aif_name = "QUAT_AUX_PCM_TX",
|
||||
.rates = (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000),
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
.channels_min = 1,
|
||||
.channels_max = 1,
|
||||
.rate_max = 16000,
|
||||
.rate_min = 8000,
|
||||
},
|
||||
.id = MSM_DAI_QUAT_AUXPCM_DT_DEV_ID,
|
||||
.ops = &msm_dai_q6_auxpcm_ops,
|
||||
.probe = msm_dai_q6_aux_pcm_probe,
|
||||
.remove = msm_dai_q6_dai_auxpcm_remove,
|
||||
},
|
||||
};
|
||||
|
||||
static int msm_dai_q6_spdif_format_put(struct snd_kcontrol *kcontrol,
|
||||
|
@ -2723,16 +2794,26 @@ static int msm_auxpcm_dev_probe(struct platform_device *pdev)
|
|||
goto fail_nodev_intf;
|
||||
}
|
||||
|
||||
if (!strncmp(intf_name, "primary", sizeof("primary"))) {
|
||||
if (!strcmp(intf_name, "primary")) {
|
||||
dai_data->rx_pid = AFE_PORT_ID_PRIMARY_PCM_RX;
|
||||
dai_data->tx_pid = AFE_PORT_ID_PRIMARY_PCM_TX;
|
||||
pdev->id = MSM_DAI_PRI_AUXPCM_DT_DEV_ID;
|
||||
i = 0;
|
||||
} else if (!strncmp(intf_name, "secondary", sizeof("secondary"))) {
|
||||
} else if (!strcmp(intf_name, "secondary")) {
|
||||
dai_data->rx_pid = AFE_PORT_ID_SECONDARY_PCM_RX;
|
||||
dai_data->tx_pid = AFE_PORT_ID_SECONDARY_PCM_TX;
|
||||
pdev->id = MSM_DAI_SEC_AUXPCM_DT_DEV_ID;
|
||||
i = 1;
|
||||
} else if (!strcmp(intf_name, "tertiary")) {
|
||||
dai_data->rx_pid = AFE_PORT_ID_TERTIARY_PCM_RX;
|
||||
dai_data->tx_pid = AFE_PORT_ID_TERTIARY_PCM_TX;
|
||||
pdev->id = MSM_DAI_TERT_AUXPCM_DT_DEV_ID;
|
||||
i = 2;
|
||||
} else if (!strcmp(intf_name, "quaternary")) {
|
||||
dai_data->rx_pid = AFE_PORT_ID_QUATERNARY_PCM_RX;
|
||||
dai_data->tx_pid = AFE_PORT_ID_QUATERNARY_PCM_TX;
|
||||
pdev->id = MSM_DAI_QUAT_AUXPCM_DT_DEV_ID;
|
||||
i = 3;
|
||||
} else {
|
||||
dev_err(&pdev->dev, "%s: invalid DT intf name %s\n",
|
||||
__func__, intf_name);
|
||||
|
@ -3639,22 +3720,28 @@ static struct snd_soc_dai_driver msm_dai_q6_mi2s_dai[] = {
|
|||
.playback = {
|
||||
.stream_name = "Primary MI2S Playback",
|
||||
.aif_name = "PRI_MI2S_RX",
|
||||
.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
|
||||
SNDRV_PCM_RATE_16000,
|
||||
.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |
|
||||
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |
|
||||
SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
|
||||
SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |
|
||||
SNDRV_PCM_RATE_192000,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE |
|
||||
SNDRV_PCM_FMTBIT_S24_LE |
|
||||
SNDRV_PCM_FMTBIT_S24_3LE,
|
||||
.rate_min = 8000,
|
||||
.rate_max = 48000,
|
||||
.rate_max = 192000,
|
||||
},
|
||||
.capture = {
|
||||
.stream_name = "Primary MI2S Capture",
|
||||
.aif_name = "PRI_MI2S_TX",
|
||||
.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
|
||||
SNDRV_PCM_RATE_16000,
|
||||
.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |
|
||||
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |
|
||||
SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
|
||||
SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |
|
||||
SNDRV_PCM_RATE_192000,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
.rate_min = 8000,
|
||||
.rate_max = 48000,
|
||||
.rate_max = 192000,
|
||||
},
|
||||
.ops = &msm_dai_q6_mi2s_ops,
|
||||
.id = MSM_PRIM_MI2S,
|
||||
|
@ -3665,9 +3752,11 @@ static struct snd_soc_dai_driver msm_dai_q6_mi2s_dai[] = {
|
|||
.playback = {
|
||||
.stream_name = "Secondary MI2S Playback",
|
||||
.aif_name = "SEC_MI2S_RX",
|
||||
.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
|
||||
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 |
|
||||
SNDRV_PCM_RATE_192000,
|
||||
.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |
|
||||
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |
|
||||
SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
|
||||
SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |
|
||||
SNDRV_PCM_RATE_192000,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
.rate_min = 8000,
|
||||
.rate_max = 192000,
|
||||
|
@ -3675,11 +3764,14 @@ static struct snd_soc_dai_driver msm_dai_q6_mi2s_dai[] = {
|
|||
.capture = {
|
||||
.stream_name = "Secondary MI2S Capture",
|
||||
.aif_name = "SEC_MI2S_TX",
|
||||
.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
|
||||
SNDRV_PCM_RATE_16000,
|
||||
.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |
|
||||
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |
|
||||
SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
|
||||
SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |
|
||||
SNDRV_PCM_RATE_192000,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
.rate_min = 8000,
|
||||
.rate_max = 48000,
|
||||
.rate_max = 192000,
|
||||
},
|
||||
.ops = &msm_dai_q6_mi2s_ops,
|
||||
.id = MSM_SEC_MI2S,
|
||||
|
@ -3690,20 +3782,26 @@ static struct snd_soc_dai_driver msm_dai_q6_mi2s_dai[] = {
|
|||
.playback = {
|
||||
.stream_name = "Tertiary MI2S Playback",
|
||||
.aif_name = "TERT_MI2S_RX",
|
||||
.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
|
||||
SNDRV_PCM_RATE_16000,
|
||||
.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |
|
||||
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |
|
||||
SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
|
||||
SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |
|
||||
SNDRV_PCM_RATE_192000,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
.rate_min = 8000,
|
||||
.rate_max = 48000,
|
||||
.rate_max = 192000,
|
||||
},
|
||||
.capture = {
|
||||
.stream_name = "Tertiary MI2S Capture",
|
||||
.aif_name = "TERT_MI2S_TX",
|
||||
.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
|
||||
SNDRV_PCM_RATE_16000,
|
||||
.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |
|
||||
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |
|
||||
SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
|
||||
SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |
|
||||
SNDRV_PCM_RATE_192000,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
.rate_min = 8000,
|
||||
.rate_max = 48000,
|
||||
.rate_max = 192000,
|
||||
},
|
||||
.ops = &msm_dai_q6_mi2s_ops,
|
||||
.id = MSM_TERT_MI2S,
|
||||
|
@ -3714,9 +3812,11 @@ static struct snd_soc_dai_driver msm_dai_q6_mi2s_dai[] = {
|
|||
.playback = {
|
||||
.stream_name = "Quaternary MI2S Playback",
|
||||
.aif_name = "QUAT_MI2S_RX",
|
||||
.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
|
||||
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 |
|
||||
SNDRV_PCM_RATE_192000,
|
||||
.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |
|
||||
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |
|
||||
SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
|
||||
SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |
|
||||
SNDRV_PCM_RATE_192000,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
.rate_min = 8000,
|
||||
.rate_max = 192000,
|
||||
|
@ -3724,11 +3824,14 @@ static struct snd_soc_dai_driver msm_dai_q6_mi2s_dai[] = {
|
|||
.capture = {
|
||||
.stream_name = "Quaternary MI2S Capture",
|
||||
.aif_name = "QUAT_MI2S_TX",
|
||||
.rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 |
|
||||
SNDRV_PCM_RATE_16000,
|
||||
.rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |
|
||||
SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 |
|
||||
SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
|
||||
SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 |
|
||||
SNDRV_PCM_RATE_192000,
|
||||
.formats = SNDRV_PCM_FMTBIT_S16_LE,
|
||||
.rate_min = 8000,
|
||||
.rate_max = 48000,
|
||||
.rate_max = 192000,
|
||||
},
|
||||
.ops = &msm_dai_q6_mi2s_ops,
|
||||
.id = MSM_QUAT_MI2S,
|
||||
|
|
|
@ -450,6 +450,14 @@ struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
|
|||
{ AFE_PORT_ID_USB_RX, 0, 0, 0, 0, 0, 0, 0, 0, LPASS_BE_USB_AUDIO_RX},
|
||||
{ AFE_PORT_ID_USB_TX, 0, 0, 0, 0, 0, 0, 0, 0, LPASS_BE_USB_AUDIO_TX},
|
||||
{ DISPLAY_PORT_RX, 0, 0, 0, 0, 0, 0, 0, 0, LPASS_BE_DISPLAY_PORT},
|
||||
{ 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,
|
||||
LPASS_BE_TERT_AUXPCM_TX},
|
||||
{ AFE_PORT_ID_QUATERNARY_PCM_RX, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
LPASS_BE_QUAT_AUXPCM_RX},
|
||||
{ AFE_PORT_ID_QUATERNARY_PCM_TX, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
LPASS_BE_QUAT_AUXPCM_TX},
|
||||
};
|
||||
|
||||
/* Track ASM playback & capture sessions of DAI */
|
||||
|
@ -3491,6 +3499,108 @@ static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
|
|||
msm_routing_put_audio_mixer),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
|
||||
SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
|
||||
SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia2", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia3", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia4", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia5", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia6", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia7", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia8", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia9", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia10", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia11", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia12", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia13", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia14", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia15", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("MultiMedia16", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
|
||||
SOC_SINGLE_EXT("MultiMedia1", MSM_BACKEND_DAI_TERT_TDM_RX_0 ,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
|
||||
|
@ -3927,6 +4037,12 @@ static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_INT_BT_SCO_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
|
@ -4065,6 +4181,12 @@ static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
|
@ -4179,6 +4301,12 @@ static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("PRI_MI2S_TX", MSM_BACKEND_DAI_PRI_MI2S_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
|
@ -4251,6 +4379,12 @@ static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
SOC_SINGLE_EXT("TERT_TDM_TX_0", MSM_BACKEND_DAI_TERT_TDM_TX_0,
|
||||
MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
|
||||
msm_routing_put_audio_mixer),
|
||||
|
@ -4874,6 +5008,72 @@ static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
|
|||
msm_routing_put_voice_mixer),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
|
||||
SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
|
||||
SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("Voice2", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("Voip", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("Voice Stub", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("VoLTE", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("VoWLAN", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("DTMF", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("QCHAT", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("VoiceMMode1", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("VoiceMMode2", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
|
||||
SOC_SINGLE_EXT("CSVoice", MSM_BACKEND_DAI_HDMI_RX,
|
||||
MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
|
||||
|
@ -5049,6 +5249,12 @@ static const struct snd_kcontrol_new tx_voice_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_TX_Voice", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_TX_Voice", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_Voice", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("PRI_MI2S_TX_Voice", MSM_BACKEND_DAI_PRI_MI2S_TX,
|
||||
MSM_FRONTEND_DAI_CS_VOICE, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
|
@ -5091,6 +5297,12 @@ static const struct snd_kcontrol_new tx_voice2_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_TX_Voice2", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_TX_Voice2", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_Voice2", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("PRI_MI2S_TX_Voice2", MSM_BACKEND_DAI_PRI_MI2S_TX,
|
||||
MSM_FRONTEND_DAI_VOICE2, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
|
@ -5127,6 +5339,12 @@ static const struct snd_kcontrol_new tx_volte_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_TX_VoLTE", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_TX_VoLTE", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_VoLTE", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("MI2S_TX_VoLTE", MSM_BACKEND_DAI_MI2S_TX,
|
||||
MSM_FRONTEND_DAI_VOLTE, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
|
@ -5166,6 +5384,12 @@ static const struct snd_kcontrol_new tx_vowlan_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_TX_VoWLAN", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_TX_VoWLAN", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_VoWLAN", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("MI2S_TX_VoWLAN", MSM_BACKEND_DAI_MI2S_TX,
|
||||
MSM_FRONTEND_DAI_VOWLAN, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
|
@ -5208,6 +5432,12 @@ static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_TX_MMode1",
|
||||
MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
|
||||
0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_TX_MMode1",
|
||||
MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
|
||||
0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_MMode1",
|
||||
MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
|
||||
0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("PRI_MI2S_TX_MMode1",
|
||||
MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
|
||||
msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
|
||||
|
@ -5247,6 +5477,12 @@ static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_TX_MMode2",
|
||||
MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
|
||||
0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_TX_MMode2",
|
||||
MSM_BACKEND_DAI_TERT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
|
||||
0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_MMode2",
|
||||
MSM_BACKEND_DAI_QUAT_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
|
||||
0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("PRI_MI2S_TX_MMode2",
|
||||
MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
|
||||
msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
|
||||
|
@ -5286,6 +5522,12 @@ static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_TX_Voip", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_TX_Voip", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_Voip", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("PRI_MI2S_TX_Voip", MSM_BACKEND_DAI_PRI_MI2S_TX,
|
||||
MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
|
@ -5334,6 +5576,12 @@ static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
|
||||
MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
|
@ -5364,6 +5612,15 @@ static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
|
||||
MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
|
@ -5400,6 +5657,15 @@ static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_SLIMBUS_0_TX,
|
||||
MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
|
||||
msm_routing_put_voice_stub_mixer),
|
||||
|
@ -5442,6 +5708,12 @@ static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_TX_QCHAT", MSM_BACKEND_DAI_SEC_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_TX_QCHAT", MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_TX_QCHAT", MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
SOC_SINGLE_EXT("MI2S_TX_QCHAT", MSM_BACKEND_DAI_MI2S_TX,
|
||||
MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
|
||||
msm_routing_put_voice_mixer),
|
||||
|
@ -5484,6 +5756,12 @@ static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
|
||||
MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
|
||||
MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
|
||||
MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
SOC_SINGLE_EXT("MI2S_TX", MSM_BACKEND_DAI_SLIMBUS_0_RX,
|
||||
MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
|
@ -5540,6 +5818,30 @@ static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
|
|||
msm_routing_put_port_mixer),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
SOC_SINGLE_EXT("SLIM_0_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
SOC_SINGLE_EXT("AUX_PCM_UL_TX", MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
|
||||
SOC_SINGLE_EXT("INTERNAL_BT_SCO_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX,
|
||||
MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
|
@ -5553,6 +5855,12 @@ static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
|
|||
SOC_SINGLE_EXT("SEC_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX,
|
||||
MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
SOC_SINGLE_EXT("TERT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX,
|
||||
MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
SOC_SINGLE_EXT("QUAT_AUX_PCM_UL_TX", MSM_BACKEND_DAI_SLIMBUS_1_RX,
|
||||
MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
|
||||
msm_routing_put_port_mixer),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
|
||||
|
@ -7689,6 +7997,14 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
|
|||
0, 0, 0, 0),
|
||||
SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
|
||||
0, 0, 0, 0),
|
||||
SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
|
||||
0, 0, 0, 0),
|
||||
SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
|
||||
0, 0, 0, 0),
|
||||
SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
|
||||
0, 0, 0, 0),
|
||||
SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
|
||||
0, 0, 0, 0),
|
||||
SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
|
||||
SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
|
||||
SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
|
||||
|
@ -7840,6 +8156,12 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
|
|||
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,
|
||||
sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
|
||||
SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
|
||||
tert_auxpcm_rx_mixer_controls,
|
||||
ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
|
||||
SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
|
||||
quat_auxpcm_rx_mixer_controls,
|
||||
ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
|
||||
/* incall */
|
||||
SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
|
||||
incall_music_delivery_mixer_controls,
|
||||
|
@ -7888,6 +8210,14 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
|
|||
SND_SOC_NOPM, 0, 0,
|
||||
sec_aux_pcm_rx_voice_mixer_controls,
|
||||
ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
|
||||
SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
|
||||
SND_SOC_NOPM, 0, 0,
|
||||
tert_aux_pcm_rx_voice_mixer_controls,
|
||||
ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
|
||||
SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
|
||||
SND_SOC_NOPM, 0, 0,
|
||||
quat_aux_pcm_rx_voice_mixer_controls,
|
||||
ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
|
||||
SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
|
||||
SND_SOC_NOPM, 0, 0,
|
||||
hdmi_rx_voice_mixer_controls,
|
||||
|
@ -7975,6 +8305,12 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
|
|||
SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
|
||||
SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
|
||||
ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
|
||||
SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
|
||||
SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
|
||||
ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
|
||||
SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
|
||||
SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
|
||||
ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
|
||||
SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
|
||||
sbus_1_rx_port_mixer_controls,
|
||||
ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
|
||||
|
@ -8556,7 +8892,6 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
|
||||
{"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
|
||||
|
||||
{"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
|
||||
{"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
|
||||
{"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
|
||||
{"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
|
||||
|
@ -8575,6 +8910,12 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
|
||||
{"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
|
||||
{"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
|
||||
{"MultiMedia1 Mixer", "TERT_AUX_PCM_UL_TX", "TERT_AUX_PCM_TX"},
|
||||
{"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
|
||||
{"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
|
||||
{"MultiMedia1 Mixer", "QUAT_AUX_PCM_UL_TX", "QUAT_AUX_PCM_TX"},
|
||||
{"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
|
||||
{"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
|
||||
{"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
|
||||
{"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
|
||||
{"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
|
||||
|
@ -8772,7 +9113,6 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
|
||||
{"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
|
||||
{"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
|
||||
{"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
|
||||
{"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
|
||||
|
||||
{"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
|
||||
|
@ -8791,9 +9131,44 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
|
||||
{"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
|
||||
{"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
|
||||
{"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
|
||||
{"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
|
||||
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
|
||||
{"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
|
||||
{"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
|
||||
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
|
||||
{"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
|
||||
{"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
|
||||
|
||||
{"MI2S_RX_Voice Mixer", "CSVoice", "CS-VOICE_DL1"},
|
||||
{"MI2S_RX_Voice Mixer", "Voice2", "VOICE2_DL"},
|
||||
{"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
|
||||
|
@ -8925,6 +9300,30 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
|
||||
{"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
|
||||
|
||||
{"TERT_AUX_PCM_RX_Voice Mixer", "CSVoice", "CS-VOICE_DL1"},
|
||||
{"TERT_AUX_PCM_RX_Voice Mixer", "Voice2", "VOICE2_DL"},
|
||||
{"TERT_AUX_PCM_RX_Voice Mixer", "VoLTE", "VoLTE_DL"},
|
||||
{"TERT_AUX_PCM_RX_Voice Mixer", "VoWLAN", "VoWLAN_DL"},
|
||||
{"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
|
||||
{"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
|
||||
{"TERT_AUX_PCM_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
|
||||
{"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
|
||||
{"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
|
||||
{"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
|
||||
{"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
|
||||
|
||||
{"QUAT_AUX_PCM_RX_Voice Mixer", "CSVoice", "CS-VOICE_DL1"},
|
||||
{"QUAT_AUX_PCM_RX_Voice Mixer", "Voice2", "VOICE2_DL"},
|
||||
{"QUAT_AUX_PCM_RX_Voice Mixer", "VoLTE", "VoLTE_DL"},
|
||||
{"QUAT_AUX_PCM_RX_Voice Mixer", "VoWLAN", "VoWLAN_DL"},
|
||||
{"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
|
||||
{"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
|
||||
{"QUAT_AUX_PCM_RX_Voice Mixer", "Voice Stub", "VOICE_STUB_DL"},
|
||||
{"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
|
||||
{"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
|
||||
{"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
|
||||
{"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
|
||||
|
||||
{"HDMI_RX_Voice Mixer", "CSVoice", "CS-VOICE_DL1"},
|
||||
{"HDMI_RX_Voice Mixer", "Voice2", "VOICE2_DL"},
|
||||
{"HDMI_RX_Voice Mixer", "VoLTE", "VoLTE_DL"},
|
||||
|
@ -9076,6 +9475,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"Voice_Tx Mixer", "AFE_PCM_TX_Voice", "PCM_TX"},
|
||||
{"Voice_Tx Mixer", "AUX_PCM_TX_Voice", "AUX_PCM_TX"},
|
||||
{"Voice_Tx Mixer", "SEC_AUX_PCM_TX_Voice", "SEC_AUX_PCM_TX"},
|
||||
{"Voice_Tx Mixer", "TERT_AUX_PCM_TX_Voice", "TERT_AUX_PCM_TX"},
|
||||
{"Voice_Tx Mixer", "QUAT_AUX_PCM_TX_Voice", "QUAT_AUX_PCM_TX"},
|
||||
{"Voice_Tx Mixer", "SEC_MI2S_TX_Voice", "SEC_MI2S_TX"},
|
||||
{"CS-VOICE_UL1", NULL, "Voice_Tx Mixer"},
|
||||
|
||||
|
@ -9091,6 +9492,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"Voice2_Tx Mixer", "AFE_PCM_TX_Voice2", "PCM_TX"},
|
||||
{"Voice2_Tx Mixer", "AUX_PCM_TX_Voice2", "AUX_PCM_TX"},
|
||||
{"Voice2_Tx Mixer", "SEC_AUX_PCM_TX_Voice2", "SEC_AUX_PCM_TX"},
|
||||
{"Voice2_Tx Mixer", "TERT_AUX_PCM_TX_Voice2", "TERT_AUX_PCM_TX"},
|
||||
{"Voice2_Tx Mixer", "QUAT_AUX_PCM_TX_Voice2", "QUAT_AUX_PCM_TX"},
|
||||
{"VOICE2_UL", NULL, "Voice2_Tx Mixer"},
|
||||
|
||||
{"VoLTE_Tx Mixer", "PRI_TX_VoLTE", "PRI_I2S_TX"},
|
||||
|
@ -9102,6 +9505,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"VoLTE_Tx Mixer", "AFE_PCM_TX_VoLTE", "PCM_TX"},
|
||||
{"VoLTE_Tx Mixer", "AUX_PCM_TX_VoLTE", "AUX_PCM_TX"},
|
||||
{"VoLTE_Tx Mixer", "SEC_AUX_PCM_TX_VoLTE", "SEC_AUX_PCM_TX"},
|
||||
{"VoLTE_Tx Mixer", "TERT_AUX_PCM_TX_VoLTE", "TERT_AUX_PCM_TX"},
|
||||
{"VoLTE_Tx Mixer", "QUAT_AUX_PCM_TX_VoLTE", "QUAT_AUX_PCM_TX"},
|
||||
{"VoLTE_Tx Mixer", "MI2S_TX_VoLTE", "MI2S_TX"},
|
||||
{"VoLTE_Tx Mixer", "PRI_MI2S_TX_VoLTE", "PRI_MI2S_TX"},
|
||||
{"VoLTE_Tx Mixer", "TERT_MI2S_TX_VoLTE", "TERT_MI2S_TX"},
|
||||
|
@ -9116,6 +9521,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"VoWLAN_Tx Mixer", "AFE_PCM_TX_VoWLAN", "PCM_TX"},
|
||||
{"VoWLAN_Tx Mixer", "AUX_PCM_TX_VoWLAN", "AUX_PCM_TX"},
|
||||
{"VoWLAN_Tx Mixer", "SEC_AUX_PCM_TX_VoWLAN", "SEC_AUX_PCM_TX"},
|
||||
{"VoWLAN_Tx Mixer", "TERT_AUX_PCM_TX_VoWLAN", "TERT_AUX_PCM_TX"},
|
||||
{"VoWLAN_Tx Mixer", "QUAT_AUX_PCM_TX_VoWLAN", "QUAT_AUX_PCM_TX"},
|
||||
{"VoWLAN_Tx Mixer", "MI2S_TX_VoWLAN", "MI2S_TX"},
|
||||
{"VoWLAN_Tx Mixer", "PRI_MI2S_TX_VoWLAN", "PRI_MI2S_TX"},
|
||||
{"VoWLAN_Tx Mixer", "TERT_MI2S_TX_VoWLAN", "TERT_MI2S_TX"},
|
||||
|
@ -9133,6 +9540,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
|
||||
{"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
|
||||
{"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
|
||||
{"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
|
||||
{"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
|
||||
{"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
|
||||
|
||||
{"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
|
||||
|
@ -9147,6 +9556,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
|
||||
{"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
|
||||
{"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
|
||||
{"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
|
||||
{"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
|
||||
{"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
|
||||
|
||||
{"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
|
||||
|
@ -9160,6 +9571,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
|
||||
{"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
|
||||
{"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
|
||||
{"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
|
||||
{"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
|
||||
{"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
|
||||
{"VOIP_UL", NULL, "Voip_Tx Mixer"},
|
||||
|
||||
|
@ -9254,6 +9667,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
|
||||
{"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
|
||||
{"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
|
||||
{"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
|
||||
{"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
|
||||
{"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
|
||||
{"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
|
||||
{"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
|
||||
|
@ -9460,6 +9875,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
|
||||
{"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
|
||||
{"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
|
||||
{"SLIMBUS_0_RX Port Mixer", "TERT_AUX_PCM_UL_TX", "TERT_AUX_PCM_TX"},
|
||||
{"SLIMBUS_0_RX Port Mixer", "QUAT_AUX_PCM_UL_TX", "QUAT_AUX_PCM_TX"},
|
||||
{"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
|
||||
{"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
|
||||
{"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
|
||||
|
@ -9482,12 +9899,24 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
|
||||
{"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
|
||||
|
||||
{"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
|
||||
{"TERT_AUXPCM_RX Port Mixer", "TERT_AUX_PCM_UL_TX", "TERT_AUX_PCM_TX"},
|
||||
{"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
|
||||
{"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
|
||||
|
||||
{"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
|
||||
{"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUX_PCM_UL_TX", "QUAT_AUX_PCM_TX"},
|
||||
{"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
|
||||
{"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
|
||||
|
||||
{"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
|
||||
{"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
|
||||
{"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
|
||||
{"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
|
||||
{"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
|
||||
{"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
|
||||
{"Voice Stub Tx Mixer", "TERT_AUX_PCM_UL_TX", "TERT_AUX_PCM_TX"},
|
||||
{"Voice Stub Tx Mixer", "QUAT_AUX_PCM_UL_TX", "QUAT_AUX_PCM_TX"},
|
||||
{"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
|
||||
{"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
|
||||
{"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
|
||||
|
@ -9675,12 +10104,12 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"BE_OUT", NULL, "SLIMBUS_3_RX"},
|
||||
{"BE_OUT", NULL, "AUX_PCM_RX"},
|
||||
{"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
|
||||
{"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
|
||||
{"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
|
||||
{"BE_OUT", NULL, "INT_BT_SCO_RX"},
|
||||
{"BE_OUT", NULL, "INT_FM_RX"},
|
||||
{"BE_OUT", NULL, "PCM_RX"},
|
||||
{"BE_OUT", NULL, "SLIMBUS_3_RX"},
|
||||
{"BE_OUT", NULL, "AUX_PCM_RX"},
|
||||
{"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
|
||||
{"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
|
||||
{"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
|
||||
{"BE_OUT", NULL, "TERT_TDM_RX_0"},
|
||||
|
@ -9719,6 +10148,8 @@ static const struct snd_soc_dapm_route intercon[] = {
|
|||
{"BE_OUT", NULL, "AUX_PCM_RX"},
|
||||
{"AUX_PCM_TX", NULL, "BE_IN"},
|
||||
{"SEC_AUX_PCM_TX", NULL, "BE_IN"},
|
||||
{"TERT_AUX_PCM_TX", NULL, "BE_IN"},
|
||||
{"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
|
||||
{"INCALL_RECORD_TX", NULL, "BE_IN"},
|
||||
{"INCALL_RECORD_RX", NULL, "BE_IN"},
|
||||
{"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
|
||||
|
|
|
@ -30,6 +30,10 @@
|
|||
#define LPASS_BE_AUXPCM_TX "AUX_PCM_TX"
|
||||
#define LPASS_BE_SEC_AUXPCM_RX "SEC_AUX_PCM_RX"
|
||||
#define LPASS_BE_SEC_AUXPCM_TX "SEC_AUX_PCM_TX"
|
||||
#define LPASS_BE_TERT_AUXPCM_RX "TERT_AUX_PCM_RX"
|
||||
#define LPASS_BE_TERT_AUXPCM_TX "TERT_AUX_PCM_TX"
|
||||
#define LPASS_BE_QUAT_AUXPCM_RX "QUAT_AUX_PCM_RX"
|
||||
#define LPASS_BE_QUAT_AUXPCM_TX "QUAT_AUX_PCM_TX"
|
||||
#define LPASS_BE_VOICE_PLAYBACK_TX "VOICE_PLAYBACK_TX"
|
||||
#define LPASS_BE_VOICE2_PLAYBACK_TX "VOICE2_PLAYBACK_TX"
|
||||
#define LPASS_BE_INCALL_RECORD_RX "INCALL_RECORD_RX"
|
||||
|
@ -313,6 +317,10 @@ enum {
|
|||
MSM_BACKEND_DAI_USB_RX,
|
||||
MSM_BACKEND_DAI_USB_TX,
|
||||
MSM_BACKEND_DAI_DISPLAY_PORT_RX,
|
||||
MSM_BACKEND_DAI_TERT_AUXPCM_RX,
|
||||
MSM_BACKEND_DAI_TERT_AUXPCM_TX,
|
||||
MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
|
||||
MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
|
||||
MSM_BACKEND_DAI_MAX,
|
||||
};
|
||||
|
||||
|
|
|
@ -419,7 +419,6 @@ int afe_get_port_type(u16 port_id)
|
|||
|
||||
switch (port_id) {
|
||||
case PRIMARY_I2S_RX:
|
||||
case AFE_PORT_ID_PRIMARY_PCM_RX:
|
||||
case SECONDARY_I2S_RX:
|
||||
case MI2S_RX:
|
||||
case HDMI_RX:
|
||||
|
@ -446,8 +445,11 @@ int afe_get_port_type(u16 port_id)
|
|||
case AFE_PORT_ID_SECONDARY_MI2S_RX_SD1:
|
||||
case AFE_PORT_ID_TERTIARY_MI2S_RX:
|
||||
case AFE_PORT_ID_QUATERNARY_MI2S_RX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_RX:
|
||||
case AFE_PORT_ID_QUINARY_MI2S_RX:
|
||||
case AFE_PORT_ID_PRIMARY_PCM_RX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_RX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_RX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_RX:
|
||||
case AFE_PORT_ID_PRIMARY_TDM_RX:
|
||||
case AFE_PORT_ID_PRIMARY_TDM_RX_1:
|
||||
case AFE_PORT_ID_PRIMARY_TDM_RX_2:
|
||||
|
@ -485,7 +487,6 @@ int afe_get_port_type(u16 port_id)
|
|||
break;
|
||||
|
||||
case PRIMARY_I2S_TX:
|
||||
case AFE_PORT_ID_PRIMARY_PCM_TX:
|
||||
case SECONDARY_I2S_TX:
|
||||
case MI2S_TX:
|
||||
case DIGI_MIC_TX:
|
||||
|
@ -507,9 +508,12 @@ int afe_get_port_type(u16 port_id)
|
|||
case AFE_PORT_ID_SECONDARY_MI2S_TX:
|
||||
case AFE_PORT_ID_TERTIARY_MI2S_TX:
|
||||
case AFE_PORT_ID_QUATERNARY_MI2S_TX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_TX:
|
||||
case AFE_PORT_ID_QUINARY_MI2S_TX:
|
||||
case AFE_PORT_ID_SENARY_MI2S_TX:
|
||||
case AFE_PORT_ID_PRIMARY_PCM_TX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_TX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_TX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_TX:
|
||||
case AFE_PORT_ID_PRIMARY_TDM_TX:
|
||||
case AFE_PORT_ID_PRIMARY_TDM_TX_1:
|
||||
case AFE_PORT_ID_PRIMARY_TDM_TX_2:
|
||||
|
@ -617,8 +621,12 @@ int afe_sizeof_cfg_cmd(u16 port_id)
|
|||
case AFE_PORT_ID_PRIMARY_PCM_TX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_RX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_TX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_RX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_TX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_RX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_TX:
|
||||
default:
|
||||
pr_err("%s: default case 0x%x\n", __func__, port_id);
|
||||
pr_debug("%s: default case 0x%x\n", __func__, port_id);
|
||||
ret_size = SIZEOF_CFG_CMD(afe_param_id_pcm_cfg);
|
||||
break;
|
||||
}
|
||||
|
@ -2876,6 +2884,10 @@ static int __afe_port_start(u16 port_id, union afe_port_config *afe_config,
|
|||
case AFE_PORT_ID_PRIMARY_PCM_TX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_RX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_TX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_RX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_TX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_RX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_TX:
|
||||
cfg_type = AFE_PARAM_ID_PCM_CONFIG;
|
||||
break;
|
||||
case PRIMARY_I2S_RX:
|
||||
|
@ -3071,6 +3083,14 @@ int afe_get_port_index(u16 port_id)
|
|||
return IDX_AFE_PORT_ID_SECONDARY_PCM_RX;
|
||||
case AFE_PORT_ID_SECONDARY_PCM_TX:
|
||||
return IDX_AFE_PORT_ID_SECONDARY_PCM_TX;
|
||||
case AFE_PORT_ID_TERTIARY_PCM_RX:
|
||||
return IDX_AFE_PORT_ID_TERTIARY_PCM_RX;
|
||||
case AFE_PORT_ID_TERTIARY_PCM_TX:
|
||||
return IDX_AFE_PORT_ID_TERTIARY_PCM_TX;
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_RX:
|
||||
return IDX_AFE_PORT_ID_QUATERNARY_PCM_RX;
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_TX:
|
||||
return IDX_AFE_PORT_ID_QUATERNARY_PCM_TX;
|
||||
case SECONDARY_I2S_RX: return IDX_SECONDARY_I2S_RX;
|
||||
case SECONDARY_I2S_TX: return IDX_SECONDARY_I2S_TX;
|
||||
case MI2S_RX: return IDX_MI2S_RX;
|
||||
|
@ -3340,6 +3360,10 @@ int afe_open(u16 port_id,
|
|||
case AFE_PORT_ID_PRIMARY_PCM_TX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_RX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_TX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_RX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_TX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_RX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_TX:
|
||||
cfg_type = AFE_PARAM_ID_PCM_CONFIG;
|
||||
break;
|
||||
case SECONDARY_I2S_RX:
|
||||
|
@ -4817,6 +4841,10 @@ int afe_validate_port(u16 port_id)
|
|||
case AFE_PORT_ID_PRIMARY_PCM_TX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_RX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_TX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_RX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_TX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_RX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_TX:
|
||||
case SECONDARY_I2S_RX:
|
||||
case SECONDARY_I2S_TX:
|
||||
case MI2S_RX:
|
||||
|
|
|
@ -32,6 +32,14 @@ int q6audio_get_port_index(u16 port_id)
|
|||
return IDX_AFE_PORT_ID_SECONDARY_PCM_RX;
|
||||
case AFE_PORT_ID_SECONDARY_PCM_TX:
|
||||
return IDX_AFE_PORT_ID_SECONDARY_PCM_TX;
|
||||
case AFE_PORT_ID_TERTIARY_PCM_RX:
|
||||
return IDX_AFE_PORT_ID_TERTIARY_PCM_RX;
|
||||
case AFE_PORT_ID_TERTIARY_PCM_TX:
|
||||
return IDX_AFE_PORT_ID_TERTIARY_PCM_TX;
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_RX:
|
||||
return IDX_AFE_PORT_ID_QUATERNARY_PCM_RX;
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_TX:
|
||||
return IDX_AFE_PORT_ID_QUATERNARY_PCM_TX;
|
||||
case SECONDARY_I2S_RX: return IDX_SECONDARY_I2S_RX;
|
||||
case SECONDARY_I2S_TX: return IDX_SECONDARY_I2S_TX;
|
||||
case MI2S_RX: return IDX_MI2S_RX;
|
||||
|
@ -242,6 +250,14 @@ int q6audio_get_port_id(u16 port_id)
|
|||
return AFE_PORT_ID_SECONDARY_PCM_RX;
|
||||
case AFE_PORT_ID_SECONDARY_PCM_TX:
|
||||
return AFE_PORT_ID_SECONDARY_PCM_TX;
|
||||
case AFE_PORT_ID_TERTIARY_PCM_RX:
|
||||
return AFE_PORT_ID_TERTIARY_PCM_RX;
|
||||
case AFE_PORT_ID_TERTIARY_PCM_TX:
|
||||
return AFE_PORT_ID_TERTIARY_PCM_TX;
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_RX:
|
||||
return AFE_PORT_ID_QUATERNARY_PCM_RX;
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_TX:
|
||||
return AFE_PORT_ID_QUATERNARY_PCM_TX;
|
||||
case SECONDARY_I2S_RX: return AFE_PORT_ID_SECONDARY_MI2S_RX;
|
||||
case SECONDARY_I2S_TX: return AFE_PORT_ID_SECONDARY_MI2S_TX;
|
||||
case MI2S_RX: return AFE_PORT_ID_PRIMARY_MI2S_RX;
|
||||
|
@ -473,6 +489,10 @@ int q6audio_is_digital_pcm_interface(u16 port_id)
|
|||
case AFE_PORT_ID_PRIMARY_PCM_TX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_RX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_TX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_RX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_TX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_RX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_TX:
|
||||
case SECONDARY_I2S_RX:
|
||||
case SECONDARY_I2S_TX:
|
||||
case MI2S_RX:
|
||||
|
@ -571,6 +591,10 @@ int q6audio_validate_port(u16 port_id)
|
|||
case AFE_PORT_ID_PRIMARY_PCM_TX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_RX:
|
||||
case AFE_PORT_ID_SECONDARY_PCM_TX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_RX:
|
||||
case AFE_PORT_ID_TERTIARY_PCM_TX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_RX:
|
||||
case AFE_PORT_ID_QUATERNARY_PCM_TX:
|
||||
case SECONDARY_I2S_RX:
|
||||
case SECONDARY_I2S_TX:
|
||||
case MI2S_RX:
|
||||
|
|
Loading…
Add table
Reference in a new issue