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

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

Merge "ASoC: mdm: Add a new dai-link for compress offload"

parents fac80432 4631b053
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -855,12 +855,13 @@
		qcom,auxpcm-interface-mode = "pri_pcm_master", "sec_pcm_master";
		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
				<&loopback>, <&hostless>, <&afe>, <&routing>,
				<&pcm_dtmf>, <&host_pcm>;
				<&pcm_dtmf>, <&host_pcm>, <&compress>;
		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
				"msm-voip-dsp", "msm-pcm-voice",
				"msm-pcm-loopback", "msm-pcm-hostless",
				"msm-pcm-afe", "msm-pcm-routing",
				"msm-pcm-dtmf", "msm-voice-host-pcm";
				"msm-pcm-dtmf", "msm-voice-host-pcm",
				"msm-compress-dsp";
		asoc-cpu = <&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
				<&mi2s_prim>, <&mi2s_sec>, <&dtmf_tx>,
				<&rx_capture_tx>, <&rx_playback_rx>,
@@ -911,12 +912,13 @@
		qcom,auxpcm-interface-mode = "pri_pcm_master", "sec_pcm_master";
		asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
				<&loopback>, <&hostless>, <&afe>, <&routing>,
				<&pcm_dtmf>, <&host_pcm>;
				<&pcm_dtmf>, <&host_pcm>, <&compress>;
		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
				"msm-voip-dsp", "msm-pcm-voice",
				"msm-pcm-loopback", "msm-pcm-hostless",
				"msm-pcm-afe", "msm-pcm-routing",
				"msm-pcm-dtmf", "msm-voice-host-pcm";
				"msm-pcm-dtmf", "msm-voice-host-pcm",
				"msm-compress-dsp";
		asoc-cpu = <&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
				<&mi2s_prim>, <&mi2s_sec>, <&dtmf_tx>,
				<&rx_capture_tx>, <&rx_playback_rx>,
@@ -999,6 +1001,11 @@
		compatible = "qcom,msm-pcm-loopback";
	};

	compress: qcom,msm-compress-dsp {
		compatible = "qcom,msm-compress-dsp";
		qcom,adsp-version = "MDSP 1.2";
	};

	 qcom,msm-dai-stub {
		compatible = "qcom,msm-dai-stub";
		dtmf_tx: qcom,msm-dai-stub-dtmf-tx {
+43 −0
Original line number Diff line number Diff line
@@ -144,6 +144,30 @@ static atomic_t sec_mi2s_ref_count;

static int clk_users;

static inline int param_is_mask(int p)
{
	return (p >= SNDRV_PCM_HW_PARAM_FIRST_MASK) &&
			(p <= SNDRV_PCM_HW_PARAM_LAST_MASK);
}

static inline struct snd_mask *param_to_mask(struct snd_pcm_hw_params *p, int n)
{
	return &(p->masks[n - SNDRV_PCM_HW_PARAM_FIRST_MASK]);
}

static void param_set_mask(struct snd_pcm_hw_params *p, int n, unsigned bit)
{
	if (bit >= SNDRV_MASK_MAX)
		return;
	if (param_is_mask(n)) {
		struct snd_mask *m = param_to_mask(p, n);

		m->bits[0] = 0;
		m->bits[1] = 0;
		m->bits[bit >> 5] |= (1 << (bit & 31));
	}
}

static int mdm_enable_codec_ext_clk(struct snd_soc_codec *codec,
					int enable, bool dapm);

@@ -581,6 +605,8 @@ static int mdm_mi2s_rx_be_hw_params_fixup(struct snd_soc_pcm_runtime *rt,
					SNDRV_PCM_HW_PARAM_CHANNELS);
	rate->min = rate->max = mdm_mi2s_rate;
	channels->min = channels->max = mdm_mi2s_rx_ch;
	param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT,
			SNDRV_PCM_FORMAT_S16_LE);
	return 0;
}

@@ -1637,6 +1663,23 @@ static struct snd_soc_dai_link mdm_dai[] = {
		.ignore_suspend = 1,
		 .ignore_pmdown_time = 1,
	},
	{
		.name = "MDM Compress1",
		.stream_name = "MultiMedia4",
		.cpu_dai_name	= "MultiMedia4",
		.platform_name  = "msm-compress-dsp",
		.dynamic = 1,
		.dpcm_playback = 1,
		.dpcm_capture = 1,
		.trigger = {SND_SOC_DPCM_TRIGGER_POST,
			SND_SOC_DPCM_TRIGGER_POST},
		.codec_dai_name = "snd-soc-dummy-dai",
		.codec_name = "snd-soc-dummy",
		.ignore_suspend = 1,
		.ignore_pmdown_time = 1,
		/* this dainlink has playback support */
		.be_id = MSM_FRONTEND_DAI_MULTIMEDIA4,
	},
	/* Backend DAI Links */
	{
		.name = LPASS_BE_AFE_PCM_RX,