From 7b6c5884b1a5d3c5edcfd1b95339c4bf0ec2e94d Mon Sep 17 00:00:00 2001 From: Han Lu Date: Sun, 9 Jun 2019 16:03:21 +0800 Subject: [PATCH] ASoC: msm: add quin tdm tx_7 to rx_7 loopback Add Quinary TDM TX 7 to RX 7 AFE loopback routing support. Change-Id: I7d7ac5dc677d2a742b913f4b123274c3a689dfed Signed-off-by: Han Lu --- asoc/msm-dai-fe.c | 32 ++++++++++++++++++++++++++++++++ asoc/msm-pcm-routing-v2.c | 17 +++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/asoc/msm-dai-fe.c b/asoc/msm-dai-fe.c index f53b3a6a5b0f..c4cdd17d1d60 100644 --- a/asoc/msm-dai-fe.c +++ b/asoc/msm-dai-fe.c @@ -2050,6 +2050,38 @@ static struct snd_soc_dai_driver msm_fe_dais[] = { .name = "QUAT_TDM_RX_7_HOSTLESS", .probe = fe_dai_probe, }, + { + .capture = { + .stream_name = "Quinary TDM7 Hostless Capture", + .aif_name = "QUIN_TDM_TX_7_UL_HL", + .rates = SNDRV_PCM_RATE_8000_48000, + .formats = (SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE), + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 48000, + }, + .ops = &msm_fe_dai_ops, + .name = "QUIN_TDM_TX_7_HOSTLESS", + .probe = fe_dai_probe, + }, + { + .playback = { + .stream_name = "Quinary TDM7 Hostless Playback", + .aif_name = "QUIN_TDM_RX_7_DL_HL", + .rates = SNDRV_PCM_RATE_8000_48000, + .formats = (SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE), + .channels_min = 1, + .channels_max = 16, + .rate_min = 8000, + .rate_max = 48000, + }, + .ops = &msm_fe_dai_ops, + .name = "QUIN_TDM_RX_7_HOSTLESS", + .probe = fe_dai_probe, + }, { .playback = { .stream_name = "DTMF_RX_HOSTLESS Playback", diff --git a/asoc/msm-pcm-routing-v2.c b/asoc/msm-pcm-routing-v2.c index 4ec63e38adb6..7baff1f0b2bb 100644 --- a/asoc/msm-pcm-routing-v2.c +++ b/asoc/msm-pcm-routing-v2.c @@ -19082,6 +19082,14 @@ static const struct snd_kcontrol_new sen_tdm_rx_3_port_mixer_controls[] = { msm_routing_put_port_mixer), }; +static const struct snd_kcontrol_new quin_tdm_rx_7_port_mixer_controls[] = { + SOC_DOUBLE_EXT("QUIN_TDM_TX_7", SND_SOC_NOPM, + MSM_BACKEND_DAI_QUIN_TDM_RX_7, + MSM_BACKEND_DAI_QUIN_TDM_TX_7, 1, 0, + msm_routing_get_port_mixer, + msm_routing_put_port_mixer), +}; + static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = { SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM, MSM_BACKEND_DAI_TERTIARY_MI2S_RX, @@ -22506,6 +22514,9 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = { SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0, quin_tdm_rx_3_port_mixer_controls, ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)), + SND_SOC_DAPM_MIXER("QUIN_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0, + quin_tdm_rx_7_port_mixer_controls, + ARRAY_SIZE(quin_tdm_rx_7_port_mixer_controls)), SND_SOC_DAPM_MIXER("SEN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0, sen_tdm_rx_0_port_mixer_controls, ARRAY_SIZE(sen_tdm_rx_0_port_mixer_controls)), @@ -25446,10 +25457,12 @@ static const struct snd_soc_dapm_route intercon[] = { {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"}, {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"}, {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"}, + {"QUIN_TDM_TX_7_UL_HL", NULL, "QUIN_TDM_TX_7"}, {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"}, {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"}, {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"}, {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"}, + {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7_DL_HL"}, {"SEN_TDM_TX_0_UL_HL", NULL, "SEN_TDM_TX_0"}, {"SEN_TDM_TX_1_UL_HL", NULL, "SEN_TDM_TX_1"}, {"SEN_TDM_TX_2_UL_HL", NULL, "SEN_TDM_TX_2"}, @@ -25984,6 +25997,8 @@ static const struct snd_soc_dapm_route intercon[] = { {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_2", "SEN_TDM_TX_2"}, {"QUIN_TDM_RX_3 Port Mixer", "SEN_TDM_TX_3", "SEN_TDM_TX_3"}, {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"}, + {"QUIN_TDM_RX_7 Port Mixer", "QUIN_TDM_TX_7", "QUIN_TDM_TX_7"}, + {"QUIN_TDM_RX_7", NULL, "QUIN_TDM_RX_7 Port Mixer"}, {"SEN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"}, {"SEN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"}, @@ -26432,6 +26447,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"BE_OUT", NULL, "QUIN_TDM_RX_1"}, {"BE_OUT", NULL, "QUIN_TDM_RX_2"}, {"BE_OUT", NULL, "QUIN_TDM_RX_3"}, + {"BE_OUT", NULL, "QUIN_TDM_RX_7"}, {"BE_OUT", NULL, "SEN_TDM_RX_0"}, {"BE_OUT", NULL, "SEN_TDM_RX_1"}, {"BE_OUT", NULL, "SEN_TDM_RX_2"}, @@ -26523,6 +26539,7 @@ static const struct snd_soc_dapm_route intercon[] = { {"QUIN_TDM_TX_1", NULL, "BE_IN"}, {"QUIN_TDM_TX_2", NULL, "BE_IN"}, {"QUIN_TDM_TX_3", NULL, "BE_IN"}, + {"QUIN_TDM_TX_7", NULL, "BE_IN"}, {"SEN_TDM_TX_0", NULL, "BE_IN"}, {"SEN_TDM_TX_1", NULL, "BE_IN"}, {"SEN_TDM_TX_2", NULL, "BE_IN"},