Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6acb6a2f authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ASoC: add dai links for tert tdm tx7 and sec rx7"

parents 19295297 85599d77
Loading
Loading
Loading
Loading
+18 −0
Original line number Original line Diff line number Diff line
@@ -14993,6 +14993,14 @@ static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
		msm_routing_put_port_mixer),
		msm_routing_put_port_mixer),
};
};
static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
	SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
		MSM_BACKEND_DAI_SEC_TDM_RX_7,
		MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
		msm_routing_get_port_mixer,
		msm_routing_put_port_mixer),
};
static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
	SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
	SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
		MSM_BACKEND_DAI_TERT_TDM_RX_0,
		MSM_BACKEND_DAI_TERT_TDM_RX_0,
@@ -19312,6 +19320,9 @@ static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
	SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
	SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
	sec_tdm_rx_3_port_mixer_controls,
	sec_tdm_rx_3_port_mixer_controls,
	ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
	ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
	SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
	sec_tdm_rx_7_port_mixer_controls,
	ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
	SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
	SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
	tert_tdm_rx_0_port_mixer_controls,
	tert_tdm_rx_0_port_mixer_controls,
	ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
	ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
@@ -21926,10 +21937,12 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
	{"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
	{"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
	{"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
	{"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
	{"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
	{"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
	{"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
	{"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
	{"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
	{"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
	{"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
	{"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
	{"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
	{"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
	{"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
	{"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
	{"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
	{"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
	{"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
	{"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
	{"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
@@ -22127,6 +22140,9 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
	{"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
	{"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
	{"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
	{"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
	{"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
	{"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
	{"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
	{"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
	{"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
	{"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
@@ -22708,6 +22724,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"BE_OUT", NULL, "SEC_TDM_RX_1"},
	{"BE_OUT", NULL, "SEC_TDM_RX_1"},
	{"BE_OUT", NULL, "SEC_TDM_RX_2"},
	{"BE_OUT", NULL, "SEC_TDM_RX_2"},
	{"BE_OUT", NULL, "SEC_TDM_RX_3"},
	{"BE_OUT", NULL, "SEC_TDM_RX_3"},
	{"BE_OUT", NULL, "SEC_TDM_RX_7"},
	{"BE_OUT", NULL, "TERT_TDM_RX_0"},
	{"BE_OUT", NULL, "TERT_TDM_RX_0"},
	{"BE_OUT", NULL, "TERT_TDM_RX_1"},
	{"BE_OUT", NULL, "TERT_TDM_RX_1"},
	{"BE_OUT", NULL, "TERT_TDM_RX_2"},
	{"BE_OUT", NULL, "TERT_TDM_RX_2"},
@@ -22796,6 +22813,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"TERT_TDM_TX_1", NULL, "BE_IN"},
	{"TERT_TDM_TX_1", NULL, "BE_IN"},
	{"TERT_TDM_TX_2", NULL, "BE_IN"},
	{"TERT_TDM_TX_2", NULL, "BE_IN"},
	{"TERT_TDM_TX_3", NULL, "BE_IN"},
	{"TERT_TDM_TX_3", NULL, "BE_IN"},
	{"TERT_TDM_TX_7", NULL, "BE_IN"},
	{"QUAT_TDM_TX_0", NULL, "BE_IN"},
	{"QUAT_TDM_TX_0", NULL, "BE_IN"},
	{"QUAT_TDM_TX_1", NULL, "BE_IN"},
	{"QUAT_TDM_TX_1", NULL, "BE_IN"},
	{"QUAT_TDM_TX_2", NULL, "BE_IN"},
	{"QUAT_TDM_TX_2", NULL, "BE_IN"},
+89 −5
Original line number Original line Diff line number Diff line
@@ -397,7 +397,7 @@ static unsigned int tdm_rx_slot_offset
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{28, 0xFFFF},
	},
	},
	{/* TERT TDM */
	{/* TERT TDM */
		{0, 4, 8, 12, 16, 20, 0xFFFF},
		{0, 4, 8, 12, 16, 20, 0xFFFF},
@@ -461,7 +461,7 @@ static unsigned int tdm_tx_slot_offset
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{28, 0xFFFF},
	},
	},
	{/* QUAT TDM */
	{/* QUAT TDM */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
@@ -512,7 +512,7 @@ static unsigned int tdm_rx_slot_offset_custom
		{10, 0xFFFF},
		{10, 0xFFFF},
		{12, 14, 16, 18, 20, 22, 24, 26, 0xFFFF},
		{12, 14, 16, 18, 20, 22, 24, 26, 0xFFFF},
		{28, 30, 0xFFFF},
		{28, 30, 0xFFFF},
		{0xFFFF}, /* not used */
		{30, 0xFFFF},
	},
	},
	{/* TERT TDM */
	{/* TERT TDM */
		{0, 2, 0xFFFF},
		{0, 2, 0xFFFF},
@@ -576,7 +576,7 @@ static unsigned int tdm_tx_slot_offset_custom
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
		{30, 0xFFFF},
	},
	},
	{/* QUAT TDM */
	{/* QUAT TDM */
		{0xFFFF}, /* not used */
		{0xFFFF}, /* not used */
@@ -4018,6 +4018,14 @@ static int msm_tdm_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
		rate->min = rate->max =
		rate->min = rate->max =
				tdm_rx_cfg[TDM_SEC][TDM_3].sample_rate;
				tdm_rx_cfg[TDM_SEC][TDM_3].sample_rate;
		break;
		break;
	case AFE_PORT_ID_SECONDARY_TDM_RX_7:
		channels->min = channels->max =
				tdm_rx_cfg[TDM_SEC][TDM_7].channels;
		param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT,
				tdm_rx_cfg[TDM_SEC][TDM_7].bit_format);
		rate->min = rate->max =
				tdm_rx_cfg[TDM_SEC][TDM_7].sample_rate;
		break;
	case AFE_PORT_ID_SECONDARY_TDM_TX:
	case AFE_PORT_ID_SECONDARY_TDM_TX:
		channels->min = channels->max =
		channels->min = channels->max =
				tdm_tx_cfg[TDM_SEC][TDM_0].channels;
				tdm_tx_cfg[TDM_SEC][TDM_0].channels;
@@ -4122,6 +4130,14 @@ static int msm_tdm_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
		rate->min = rate->max =
		rate->min = rate->max =
				tdm_tx_cfg[TDM_TERT][TDM_3].sample_rate;
				tdm_tx_cfg[TDM_TERT][TDM_3].sample_rate;
		break;
		break;
	case AFE_PORT_ID_TERTIARY_TDM_TX_7:
		channels->min = channels->max =
				tdm_tx_cfg[TDM_TERT][TDM_7].channels;
		param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT,
				tdm_tx_cfg[TDM_TERT][TDM_7].bit_format);
		rate->min = rate->max =
				tdm_tx_cfg[TDM_TERT][TDM_7].sample_rate;
		break;
	case AFE_PORT_ID_QUATERNARY_TDM_RX:
	case AFE_PORT_ID_QUATERNARY_TDM_RX:
		channels->min = channels->max =
		channels->min = channels->max =
				tdm_rx_cfg[TDM_QUAT][TDM_0].channels;
				tdm_rx_cfg[TDM_QUAT][TDM_0].channels;
@@ -4375,6 +4391,11 @@ static int sa8155_tdm_snd_hw_params(struct snd_pcm_substream *substream,
		slot_width = tdm_slot[TDM_SEC].width;
		slot_width = tdm_slot[TDM_SEC].width;
		slot_offset = tdm_rx_slot_offset[TDM_SEC][TDM_3];
		slot_offset = tdm_rx_slot_offset[TDM_SEC][TDM_3];
		break;
		break;
	case AFE_PORT_ID_SECONDARY_TDM_RX_7:
		slots = tdm_slot[TDM_SEC].num;
		slot_width = tdm_slot[TDM_SEC].width;
		slot_offset = tdm_rx_slot_offset[TDM_SEC][TDM_7];
		break;
	case AFE_PORT_ID_SECONDARY_TDM_TX:
	case AFE_PORT_ID_SECONDARY_TDM_TX:
		slots = tdm_slot[TDM_SEC].num;
		slots = tdm_slot[TDM_SEC].num;
		slot_width = tdm_slot[TDM_SEC].width;
		slot_width = tdm_slot[TDM_SEC].width;
@@ -4440,6 +4461,11 @@ static int sa8155_tdm_snd_hw_params(struct snd_pcm_substream *substream,
		slot_width = tdm_slot[TDM_TERT].width;
		slot_width = tdm_slot[TDM_TERT].width;
		slot_offset = tdm_tx_slot_offset[TDM_TERT][TDM_3];
		slot_offset = tdm_tx_slot_offset[TDM_TERT][TDM_3];
		break;
		break;
	case AFE_PORT_ID_TERTIARY_TDM_TX_7:
		slots = tdm_slot[TDM_TERT].num;
		slot_width = tdm_slot[TDM_TERT].width;
		slot_offset = tdm_tx_slot_offset[TDM_TERT][TDM_7];
		break;
	case AFE_PORT_ID_QUATERNARY_TDM_RX:
	case AFE_PORT_ID_QUATERNARY_TDM_RX:
		slots = tdm_slot[TDM_QUAT].num;
		slots = tdm_slot[TDM_QUAT].num;
		slot_width = tdm_slot[TDM_QUAT].width;
		slot_width = tdm_slot[TDM_QUAT].width;
@@ -5565,7 +5591,37 @@ static struct snd_soc_dai_link msm_auto_fe_dai_links[] = {
		.codec_dai_name = "snd-soc-dummy-dai",
		.codec_dai_name = "snd-soc-dummy-dai",
		.codec_name = "snd-soc-dummy",
		.codec_name = "snd-soc-dummy",
		.id = MSM_FRONTEND_DAI_DTMF_RX,
		.id = MSM_FRONTEND_DAI_DTMF_RX,
	}
	},
	{
		.name = "Secondary TDM RX 7 Hostless",
		.stream_name = "Secondary TDM RX 7 Hostless",
		.cpu_dai_name = "SEC_TDM_RX_7_HOSTLESS",
		.platform_name = "msm-pcm-hostless",
		.dynamic = 1,
		.dpcm_playback = 1,
		.trigger = {SND_SOC_DPCM_TRIGGER_POST,
			SND_SOC_DPCM_TRIGGER_POST},
		.no_host_mode = SND_SOC_DAI_LINK_NO_HOST,
		.ignore_suspend = 1,
		.ignore_pmdown_time = 1,
		.codec_dai_name = "snd-soc-dummy-dai",
		.codec_name = "snd-soc-dummy",
	},
	{
		.name = "Tertiary TDM TX 7 Hostless",
		.stream_name = "Tertiary TDM TX 7 Hostless",
		.cpu_dai_name = "TERT_TDM_TX_7_HOSTLESS",
		.platform_name = "msm-pcm-hostless",
		.dynamic = 1,
		.dpcm_capture = 1,
		.trigger = {SND_SOC_DPCM_TRIGGER_POST,
			SND_SOC_DPCM_TRIGGER_POST},
		.no_host_mode = SND_SOC_DAI_LINK_NO_HOST,
		.ignore_suspend = 1,
		.ignore_pmdown_time = 1,
		.codec_dai_name = "snd-soc-dummy-dai",
		.codec_name = "snd-soc-dummy",
	},
};
};


static struct snd_soc_dai_link msm_custom_fe_dai_links[] = {
static struct snd_soc_dai_link msm_custom_fe_dai_links[] = {
@@ -6118,6 +6174,20 @@ static struct snd_soc_dai_link msm_auto_be_dai_links[] = {
		.ops = &sa8155_tdm_be_ops,
		.ops = &sa8155_tdm_be_ops,
		.ignore_suspend = 1,
		.ignore_suspend = 1,
	},
	},
	{
		.name = LPASS_BE_SEC_TDM_RX_7,
		.stream_name = "Secondary TDM7 Playback",
		.cpu_dai_name = "msm-dai-q6-tdm.36894",
		.platform_name = "msm-pcm-routing",
		.codec_name = "msm-stub-codec.1",
		.codec_dai_name = "msm-stub-rx",
		.no_pcm = 1,
		.dpcm_playback = 1,
		.id = MSM_BACKEND_DAI_SEC_TDM_RX_7,
		.be_hw_params_fixup = msm_tdm_be_hw_params_fixup,
		.ops = &sa8155_tdm_be_ops,
		.ignore_suspend = 1,
	},
	{
	{
		.name = LPASS_BE_SEC_TDM_TX_1,
		.name = LPASS_BE_SEC_TDM_TX_1,
		.stream_name = "Secondary TDM1 Capture",
		.stream_name = "Secondary TDM1 Capture",
@@ -6258,6 +6328,20 @@ static struct snd_soc_dai_link msm_auto_be_dai_links[] = {
		.ops = &sa8155_tdm_be_ops,
		.ops = &sa8155_tdm_be_ops,
		.ignore_suspend = 1,
		.ignore_suspend = 1,
	},
	},
	{
		.name = LPASS_BE_TERT_TDM_TX_7,
		.stream_name = "Tertiary TDM7 Capture",
		.cpu_dai_name = "msm-dai-q6-tdm.36911",
		.platform_name = "msm-pcm-routing",
		.codec_name = "msm-stub-codec.1",
		.codec_dai_name = "msm-stub-rx",
		.no_pcm = 1,
		.dpcm_capture = 1,
		.id = MSM_BACKEND_DAI_TERT_TDM_TX_7,
		.be_hw_params_fixup = msm_tdm_be_hw_params_fixup,
		.ops = &sa8155_tdm_be_ops,
		.ignore_suspend = 1,
	},
	{
	{
		.name = LPASS_BE_QUAT_TDM_RX_1,
		.name = LPASS_BE_QUAT_TDM_RX_1,
		.stream_name = "Quaternary TDM1 Playback",
		.stream_name = "Quaternary TDM1 Playback",