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

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

Merge "ASoC: msm: add support for TERT_TDM_RX_4 BE"

parents a1164b68 75f683f4
Loading
Loading
Loading
Loading
+33 −12
Original line number Diff line number Diff line
@@ -691,12 +691,13 @@
				<&dai_sec_tdm_tx_2>, <&dai_sec_tdm_tx_3>,
				<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_rx_1>,
				<&dai_tert_tdm_rx_2>, <&dai_tert_tdm_rx_3>,
				<&dai_tert_tdm_tx_0>, <&dai_tert_tdm_tx_1>,
				<&dai_tert_tdm_tx_2>, <&dai_tert_tdm_tx_3>,
				<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_rx_1>,
				<&dai_quat_tdm_rx_2>, <&dai_quat_tdm_rx_3>,
				<&dai_quat_tdm_tx_0>, <&dai_quat_tdm_tx_1>,
				<&dai_quat_tdm_tx_2>, <&dai_quat_tdm_tx_3>;
				<&dai_tert_tdm_rx_4>, <&dai_tert_tdm_tx_0>,
				<&dai_tert_tdm_tx_1>, <&dai_tert_tdm_tx_2>,
				<&dai_tert_tdm_tx_3>, <&dai_quat_tdm_rx_0>,
				<&dai_quat_tdm_rx_1>, <&dai_quat_tdm_rx_2>,
				<&dai_quat_tdm_rx_3>, <&dai_quat_tdm_tx_0>,
				<&dai_quat_tdm_tx_1>, <&dai_quat_tdm_tx_2>,
				<&dai_quat_tdm_tx_3>;
		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
				"msm-dai-q6-hdmi.8", "msm-dai-q6-mi2s.1",
				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
@@ -708,12 +709,13 @@
				"msm-dai-q6-tdm.36885", "msm-dai-q6-tdm.36887",
				"msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36898",
				"msm-dai-q6-tdm.36900", "msm-dai-q6-tdm.36902",
				"msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36899",
				"msm-dai-q6-tdm.36901", "msm-dai-q6-tdm.36903",
				"msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36914",
				"msm-dai-q6-tdm.36916", "msm-dai-q6-tdm.36918",
				"msm-dai-q6-tdm.36913", "msm-dai-q6-tdm.36915",
				"msm-dai-q6-tdm.36917", "msm-dai-q6-tdm.36919";
				"msm-dai-q6-tdm.36904", "msm-dai-q6-tdm.36897",
				"msm-dai-q6-tdm.36899", "msm-dai-q6-tdm.36901",
				"msm-dai-q6-tdm.36903", "msm-dai-q6-tdm.36912",
				"msm-dai-q6-tdm.36914", "msm-dai-q6-tdm.36916",
				"msm-dai-q6-tdm.36918", "msm-dai-q6-tdm.36913",
				"msm-dai-q6-tdm.36915", "msm-dai-q6-tdm.36917",
				"msm-dai-q6-tdm.36919";
		asoc-codec = <&stub_codec>;
		asoc-codec-names = "msm-stub-codec.1";
	};
@@ -749,6 +751,25 @@
		};
	};

	qcom,msm-dai-tdm-tert-rx {
		qcom,msm-cpudai-tdm-group-num-ports = <5>;
		qcom,msm-cpudai-tdm-group-port-id = <36896 36898 36900
							36902 36904>;
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&tert_tdm_dout_active>;
		pinctrl-1 = <&tert_tdm_dout_sleep>;
		dai_tert_tdm_rx_4: qcom,msm-dai-q6-tdm-tert-rx-4 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36904>;
			qcom,msm-cpudai-tdm-sync-mode = <1>;
			qcom,msm-cpudai-tdm-sync-src = <0>;
			qcom,msm-cpudai-tdm-data-out = <0>;
			qcom,msm-cpudai-tdm-invert-sync = <0>;
			qcom,msm-cpudai-tdm-data-delay = <0>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};

	qcom,msm-dai-tdm-quat-rx {
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&quat_tdm_dout_active>;
+27 −12
Original line number Diff line number Diff line
@@ -1004,12 +1004,13 @@
				<&dai_sec_tdm_tx_2>, <&dai_sec_tdm_tx_3>,
				<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_rx_1>,
				<&dai_tert_tdm_rx_2>, <&dai_tert_tdm_rx_3>,
				<&dai_tert_tdm_tx_0>, <&dai_tert_tdm_tx_1>,
				<&dai_tert_tdm_tx_2>, <&dai_tert_tdm_tx_3>,
				<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_rx_1>,
				<&dai_quat_tdm_rx_2>, <&dai_quat_tdm_rx_3>,
				<&dai_quat_tdm_tx_0>, <&dai_quat_tdm_tx_1>,
				<&dai_quat_tdm_tx_2>, <&dai_quat_tdm_tx_3>;
				<&dai_tert_tdm_rx_4>, <&dai_tert_tdm_tx_0>,
				<&dai_tert_tdm_tx_1>, <&dai_tert_tdm_tx_2>,
				<&dai_tert_tdm_tx_3>, <&dai_quat_tdm_rx_0>,
				<&dai_quat_tdm_rx_1>, <&dai_quat_tdm_rx_2>,
				<&dai_quat_tdm_rx_3>, <&dai_quat_tdm_tx_0>,
				<&dai_quat_tdm_tx_1>, <&dai_quat_tdm_tx_2>,
				<&dai_quat_tdm_tx_3>;
		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
				"msm-dai-q6-hdmi.8", "msm-dai-q6-mi2s.1",
				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
@@ -1021,12 +1022,13 @@
				"msm-dai-q6-tdm.36885", "msm-dai-q6-tdm.36887",
				"msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36898",
				"msm-dai-q6-tdm.36900", "msm-dai-q6-tdm.36902",
				"msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36899",
				"msm-dai-q6-tdm.36901", "msm-dai-q6-tdm.36903",
				"msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36914",
				"msm-dai-q6-tdm.36916", "msm-dai-q6-tdm.36918",
				"msm-dai-q6-tdm.36913", "msm-dai-q6-tdm.36915",
				"msm-dai-q6-tdm.36917", "msm-dai-q6-tdm.36919";
				"msm-dai-q6-tdm.36904", "msm-dai-q6-tdm.36897",
				"msm-dai-q6-tdm.36899", "msm-dai-q6-tdm.36901",
				"msm-dai-q6-tdm.36903", "msm-dai-q6-tdm.36912",
				"msm-dai-q6-tdm.36914", "msm-dai-q6-tdm.36916",
				"msm-dai-q6-tdm.36918", "msm-dai-q6-tdm.36913",
				"msm-dai-q6-tdm.36915", "msm-dai-q6-tdm.36917",
				"msm-dai-q6-tdm.36919";
		asoc-codec = <&stub_codec>;
		asoc-codec-names = "msm-stub-codec.1";
	};
@@ -1068,9 +1070,22 @@
	};

	qcom,msm-dai-tdm-tert-rx {
		qcom,msm-cpudai-tdm-group-num-ports = <5>;
		qcom,msm-cpudai-tdm-group-port-id = <36896 36898 36900
							36902 36904>;
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&tert_tdm_dout_active>;
		pinctrl-1 = <&tert_tdm_dout_sleep>;
		dai_tert_tdm_rx_4: qcom,msm-dai-q6-tdm-tert-rx-4 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36904>;
			qcom,msm-cpudai-tdm-sync-mode = <1>;
			qcom,msm-cpudai-tdm-sync-src = <0>;
			qcom,msm-cpudai-tdm-data-out = <0>;
			qcom,msm-cpudai-tdm-invert-sync = <0>;
			qcom,msm-cpudai-tdm-data-delay = <0>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};

	qcom,msm-dai-tdm-quat-rx {
+33 −12
Original line number Diff line number Diff line
@@ -874,12 +874,13 @@
				<&dai_sec_tdm_tx_2>, <&dai_sec_tdm_tx_3>,
				<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_rx_1>,
				<&dai_tert_tdm_rx_2>, <&dai_tert_tdm_rx_3>,
				<&dai_tert_tdm_tx_0>, <&dai_tert_tdm_tx_1>,
				<&dai_tert_tdm_tx_2>, <&dai_tert_tdm_tx_3>,
				<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_rx_1>,
				<&dai_quat_tdm_rx_2>, <&dai_quat_tdm_rx_3>,
				<&dai_quat_tdm_tx_0>, <&dai_quat_tdm_tx_1>,
				<&dai_quat_tdm_tx_2>, <&dai_quat_tdm_tx_3>;
				<&dai_tert_tdm_rx_4>, <&dai_tert_tdm_tx_0>,
				<&dai_tert_tdm_tx_1>, <&dai_tert_tdm_tx_2>,
				<&dai_tert_tdm_tx_3>, <&dai_quat_tdm_rx_0>,
				<&dai_quat_tdm_rx_1>, <&dai_quat_tdm_rx_2>,
				<&dai_quat_tdm_rx_3>, <&dai_quat_tdm_tx_0>,
				<&dai_quat_tdm_tx_1>, <&dai_quat_tdm_tx_2>,
				<&dai_quat_tdm_tx_3>;
		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
				"msm-dai-q6-hdmi.8", "msm-dai-q6-mi2s.1",
				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
@@ -891,12 +892,13 @@
				"msm-dai-q6-tdm.36885", "msm-dai-q6-tdm.36887",
				"msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36898",
				"msm-dai-q6-tdm.36900", "msm-dai-q6-tdm.36902",
				"msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36899",
				"msm-dai-q6-tdm.36901", "msm-dai-q6-tdm.36903",
				"msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36914",
				"msm-dai-q6-tdm.36916", "msm-dai-q6-tdm.36918",
				"msm-dai-q6-tdm.36913", "msm-dai-q6-tdm.36915",
				"msm-dai-q6-tdm.36917", "msm-dai-q6-tdm.36919";
				"msm-dai-q6-tdm.36904", "msm-dai-q6-tdm.36897",
				"msm-dai-q6-tdm.36899", "msm-dai-q6-tdm.36901",
				"msm-dai-q6-tdm.36903", "msm-dai-q6-tdm.36912",
				"msm-dai-q6-tdm.36914", "msm-dai-q6-tdm.36916",
				"msm-dai-q6-tdm.36918", "msm-dai-q6-tdm.36913",
				"msm-dai-q6-tdm.36915", "msm-dai-q6-tdm.36917",
				"msm-dai-q6-tdm.36919";
		asoc-codec = <&stub_codec>;
		asoc-codec-names = "msm-stub-codec.1";
	};
@@ -946,6 +948,25 @@
		};
	};

	qcom,msm-dai-tdm-tert-rx {
		qcom,msm-cpudai-tdm-group-num-ports = <5>;
		qcom,msm-cpudai-tdm-group-port-id = <36896 36898 36900
							36902 36904>;
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&tert_tdm_dout_active>;
		pinctrl-1 = <&tert_tdm_dout_sleep>;
		dai_tert_tdm_rx_4: qcom,msm-dai-q6-tdm-tert-rx-4 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36904>;
			qcom,msm-cpudai-tdm-sync-mode = <1>;
			qcom,msm-cpudai-tdm-sync-src = <0>;
			qcom,msm-cpudai-tdm-data-out = <0>;
			qcom,msm-cpudai-tdm-invert-sync = <0>;
			qcom,msm-cpudai-tdm-data-delay = <0>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};

	qcom,msm-dai-tdm-quat-rx {
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&quat_tdm_dout_active>;
+33 −12
Original line number Diff line number Diff line
@@ -542,12 +542,13 @@
				<&dai_sec_tdm_tx_2>, <&dai_sec_tdm_tx_3>,
				<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_rx_1>,
				<&dai_tert_tdm_rx_2>, <&dai_tert_tdm_rx_3>,
				<&dai_tert_tdm_tx_0>, <&dai_tert_tdm_tx_1>,
				<&dai_tert_tdm_tx_2>, <&dai_tert_tdm_tx_3>,
				<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_rx_1>,
				<&dai_quat_tdm_rx_2>, <&dai_quat_tdm_rx_3>,
				<&dai_quat_tdm_tx_0>, <&dai_quat_tdm_tx_1>,
				<&dai_quat_tdm_tx_2>, <&dai_quat_tdm_tx_3>;
				<&dai_tert_tdm_rx_4>, <&dai_tert_tdm_tx_0>,
				<&dai_tert_tdm_tx_1>, <&dai_tert_tdm_tx_2>,
				<&dai_tert_tdm_tx_3>, <&dai_quat_tdm_rx_0>,
				<&dai_quat_tdm_rx_1>, <&dai_quat_tdm_rx_2>,
				<&dai_quat_tdm_rx_3>, <&dai_quat_tdm_tx_0>,
				<&dai_quat_tdm_tx_1>, <&dai_quat_tdm_tx_2>,
				<&dai_quat_tdm_tx_3>;
		asoc-cpu-names = "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
				"msm-dai-q6-hdmi.8", "msm-dai-q6-mi2s.1",
				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
@@ -559,12 +560,13 @@
				"msm-dai-q6-tdm.36885", "msm-dai-q6-tdm.36887",
				"msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36898",
				"msm-dai-q6-tdm.36900", "msm-dai-q6-tdm.36902",
				"msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36899",
				"msm-dai-q6-tdm.36901", "msm-dai-q6-tdm.36903",
				"msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36914",
				"msm-dai-q6-tdm.36916", "msm-dai-q6-tdm.36918",
				"msm-dai-q6-tdm.36913", "msm-dai-q6-tdm.36915",
				"msm-dai-q6-tdm.36917", "msm-dai-q6-tdm.36919";
				"msm-dai-q6-tdm.36904", "msm-dai-q6-tdm.36897",
				"msm-dai-q6-tdm.36899", "msm-dai-q6-tdm.36901",
				"msm-dai-q6-tdm.36903", "msm-dai-q6-tdm.36912",
				"msm-dai-q6-tdm.36914", "msm-dai-q6-tdm.36916",
				"msm-dai-q6-tdm.36918", "msm-dai-q6-tdm.36913",
				"msm-dai-q6-tdm.36915", "msm-dai-q6-tdm.36917",
				"msm-dai-q6-tdm.36919";
		asoc-codec = <&stub_codec>;
		asoc-codec-names = "msm-stub-codec.1";
	};
@@ -592,6 +594,25 @@
		};
	};

	qcom,msm-dai-tdm-tert-rx {
		qcom,msm-cpudai-tdm-group-num-ports = <5>;
		qcom,msm-cpudai-tdm-group-port-id = <36896 36898 36900
							36902 36904>;
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&tert_tdm_dout_active>;
		pinctrl-1 = <&tert_tdm_dout_sleep>;
		dai_tert_tdm_rx_4: qcom,msm-dai-q6-tdm-tert-rx-4 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36904>;
			qcom,msm-cpudai-tdm-sync-mode = <1>;
			qcom,msm-cpudai-tdm-sync-src = <0>;
			qcom,msm-cpudai-tdm-data-out = <0>;
			qcom,msm-cpudai-tdm-invert-sync = <0>;
			qcom,msm-cpudai-tdm-data-delay = <0>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};

	qcom,msm-dai-tdm-quat-rx {
		pinctrl-names = "default", "sleep";
		pinctrl-0 = <&quat_tdm_dout_active>;
+78 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ static int msm_tert_tdm_rx_0_ch = 2; /* ICC STREAM */
static int msm_tert_tdm_rx_1_ch = 2;
static int msm_tert_tdm_rx_2_ch = 2;
static int msm_tert_tdm_rx_3_ch = 2;
static int msm_tert_tdm_rx_4_ch;

static int msm_tert_tdm_tx_0_ch = 6; /* EC_REF1-EC_REF6(6 CHAN) */
static int msm_tert_tdm_tx_1_ch = 1;
@@ -95,6 +96,7 @@ static int msm_tert_tdm_rx_0_bit_format = SNDRV_PCM_FORMAT_S16_LE;
static int msm_tert_tdm_rx_1_bit_format = SNDRV_PCM_FORMAT_S16_LE;
static int msm_tert_tdm_rx_2_bit_format = SNDRV_PCM_FORMAT_S16_LE;
static int msm_tert_tdm_rx_3_bit_format = SNDRV_PCM_FORMAT_S16_LE;
static int msm_tert_tdm_rx_4_bit_format = SNDRV_PCM_FORMAT_S16_LE;

static int msm_tert_tdm_tx_0_bit_format = SNDRV_PCM_FORMAT_S16_LE;
static int msm_tert_tdm_tx_1_bit_format = SNDRV_PCM_FORMAT_S16_LE;
@@ -778,6 +780,24 @@ static int msm_tert_tdm_rx_3_ch_put(struct snd_kcontrol *kcontrol,
	return 0;
}

static int msm_tert_tdm_rx_4_ch_get(struct snd_kcontrol *kcontrol,
			       struct snd_ctl_elem_value *ucontrol)
{
	pr_debug("%s: msm_tert_tdm_rx_4_ch = %d\n", __func__,
		msm_tert_tdm_rx_4_ch);
	ucontrol->value.integer.value[0] = msm_tert_tdm_rx_4_ch - 1;
	return 0;
}

static int msm_tert_tdm_rx_4_ch_put(struct snd_kcontrol *kcontrol,
			       struct snd_ctl_elem_value *ucontrol)
{
	msm_tert_tdm_rx_4_ch = ucontrol->value.integer.value[0] + 1;
	pr_debug("%s: msm_tert_tdm_rx_4_ch = %d\n", __func__,
		msm_tert_tdm_rx_4_ch);
	return 0;
}

static int msm_tert_tdm_tx_0_ch_get(struct snd_kcontrol *kcontrol,
			       struct snd_ctl_elem_value *ucontrol)
{
@@ -1266,6 +1286,40 @@ static int msm_tert_tdm_rx_3_bit_format_put(struct snd_kcontrol *kcontrol,
	return 0;
}

static int msm_tert_tdm_rx_4_bit_format_get(struct snd_kcontrol *kcontrol,
				  struct snd_ctl_elem_value *ucontrol)
{
	switch (msm_tert_tdm_rx_4_bit_format) {
	case SNDRV_PCM_FORMAT_S24_LE:
		ucontrol->value.integer.value[0] = 1;
		break;
	case SNDRV_PCM_FORMAT_S16_LE:
	default:
		ucontrol->value.integer.value[0] = 0;
		break;
	}
	pr_debug("%s: msm_tert_tdm_rx_4_bit_format = %ld\n",
		 __func__, ucontrol->value.integer.value[0]);
	return 0;
}

static int msm_tert_tdm_rx_4_bit_format_put(struct snd_kcontrol *kcontrol,
				  struct snd_ctl_elem_value *ucontrol)
{
	switch (ucontrol->value.integer.value[0]) {
	case 1:
		msm_tert_tdm_rx_4_bit_format = SNDRV_PCM_FORMAT_S24_LE;
		break;
	case 0:
	default:
		msm_tert_tdm_rx_4_bit_format = SNDRV_PCM_FORMAT_S16_LE;
		break;
	}
	pr_debug("%s: msm_tert_tdm_rx_4_bit_format = %d\n",
		 __func__, msm_tert_tdm_rx_4_bit_format);
	return 0;
}

static int msm_tert_tdm_tx_0_bit_format_get(struct snd_kcontrol *kcontrol,
				  struct snd_ctl_elem_value *ucontrol)
{
@@ -1962,6 +2016,11 @@ static int msm_tdm_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
		param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT,
			msm_tert_tdm_rx_3_bit_format);
		break;
	case AFE_PORT_ID_TERTIARY_TDM_RX_4:
		channels->min = channels->max = msm_tert_tdm_rx_4_ch;
		param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT,
			msm_tert_tdm_rx_4_bit_format);
		break;
	case AFE_PORT_ID_TERTIARY_TDM_TX:
		channels->min = channels->max = msm_tert_tdm_tx_0_ch;
		param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT,
@@ -2548,6 +2607,8 @@ static const struct snd_kcontrol_new msm_snd_controls[] = {
			msm_tert_tdm_rx_2_ch_get, msm_tert_tdm_rx_2_ch_put),
	SOC_ENUM_EXT("TERT_TDM_RX_3 Channels", msm_snd_enum[5],
			msm_tert_tdm_rx_3_ch_get, msm_tert_tdm_rx_3_ch_put),
	SOC_ENUM_EXT("TERT_TDM_RX_4 Channels", msm_snd_enum[5],
			msm_tert_tdm_rx_4_ch_get, msm_tert_tdm_rx_4_ch_put),
	SOC_ENUM_EXT("TERT_TDM_TX_0 Channels", msm_snd_enum[5],
			msm_tert_tdm_tx_0_ch_get, msm_tert_tdm_tx_0_ch_put),
	SOC_ENUM_EXT("TERT_TDM_TX_1 Channels", msm_snd_enum[5],
@@ -2596,6 +2657,9 @@ static const struct snd_kcontrol_new msm_snd_controls[] = {
	SOC_ENUM_EXT("TERT_TDM_RX_3 Bit Format", msm_snd_enum[6],
			msm_tert_tdm_rx_3_bit_format_get,
			msm_tert_tdm_rx_3_bit_format_put),
	SOC_ENUM_EXT("TERT_TDM_RX_4 Bit Format", msm_snd_enum[6],
			msm_tert_tdm_rx_4_bit_format_get,
			msm_tert_tdm_rx_4_bit_format_put),
	SOC_ENUM_EXT("TERT_TDM_TX_0 Bit Format", msm_snd_enum[6],
			msm_tert_tdm_tx_0_bit_format_get,
			msm_tert_tdm_tx_0_bit_format_put),
@@ -3921,6 +3985,20 @@ static struct snd_soc_dai_link apq8096_auto_be_dai_links[] = {
		.ops = &apq8096_tdm_be_ops,
		.ignore_suspend = 1,
	},
	{
		.name = LPASS_BE_TERT_TDM_RX_4,
		.stream_name = "Tertiary TDM4 Playback",
		.cpu_dai_name = "msm-dai-q6-tdm.36904",
		.platform_name = "msm-pcm-routing",
		.codec_name = "msm-stub-codec.1",
		.codec_dai_name = "msm-stub-rx",
		.no_pcm = 1,
		.dpcm_playback = 1,
		.be_id = MSM_BACKEND_DAI_TERT_TDM_RX_4,
		.be_hw_params_fixup = msm_tdm_be_hw_params_fixup,
		.ops = &apq8096_tdm_be_ops,
		.ignore_suspend = 1,
	},
	{
		.name = LPASS_BE_TERT_TDM_TX_0,
		.stream_name = "Tertiary TDM0 Capture",