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

Commit 713c5979 authored by Xiaojun Sang's avatar Xiaojun Sang
Browse files

ASoC: soc: add a new dailink for VI recording



SLIMBUS 4 TX is used for speaker protection. To enable VI
recording without breaking speaker protection, a new dailink
is added as non-hostless.

CRs-Fixed: 1087025
Change-Id: I440b7826fb5fd4fbd55831c1e89b9b010f3b948c
Signed-off-by: default avatarXiaojun Sang <xsang@codeaurora.org>
parent 641fb281
Loading
Loading
Loading
Loading
+36 −1
Original line number Original line Diff line number Diff line
@@ -2765,6 +2765,7 @@ static int msm_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
		break;
		break;


	case MSM_BACKEND_DAI_SLIMBUS_4_TX:
	case MSM_BACKEND_DAI_SLIMBUS_4_TX:
	case MSM_BACKEND_DAI_SLIMBUS_TX_VI:
		param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT,
		param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT,
			       SNDRV_PCM_FORMAT_S32_LE);
			       SNDRV_PCM_FORMAT_S32_LE);
		rate->min = rate->max = SAMPLING_RATE_8KHZ;
		rate->min = rate->max = SAMPLING_RATE_8KHZ;
@@ -3560,7 +3561,8 @@ static int msm_snd_hw_params(struct snd_pcm_substream *substream,
		/* For <codec>_tx3 case */
		/* For <codec>_tx3 case */
		else if (dai_link->be_id == MSM_BACKEND_DAI_SLIMBUS_1_TX)
		else if (dai_link->be_id == MSM_BACKEND_DAI_SLIMBUS_1_TX)
			user_set_tx_ch = slim_tx_cfg[1].channels;
			user_set_tx_ch = slim_tx_cfg[1].channels;
		else if (dai_link->be_id == MSM_BACKEND_DAI_SLIMBUS_4_TX)
		else if (dai_link->be_id == MSM_BACKEND_DAI_SLIMBUS_4_TX ||
			dai_link->be_id == MSM_BACKEND_DAI_SLIMBUS_TX_VI)
			user_set_tx_ch = msm_vi_feed_tx_ch;
			user_set_tx_ch = msm_vi_feed_tx_ch;
		else
		else
			user_set_tx_ch = tx_ch_cnt;
			user_set_tx_ch = tx_ch_cnt;
@@ -5259,6 +5261,22 @@ static struct snd_soc_dai_link msm_tasha_be_dai_links[] = {
		.ignore_pmdown_time = 1,
		.ignore_pmdown_time = 1,
		.ignore_suspend = 1,
		.ignore_suspend = 1,
	},
	},
	/* Slimbus VI Recording */
	{
		.name = LPASS_BE_SLIMBUS_TX_VI,
		.stream_name = "Slimbus VI Capture",
		.cpu_dai_name = "msm-dai-q6-dev.20233",
		.platform_name = "msm-pcm-routing",
		.codec_name = "tasha_codec",
		.codec_dai_name = "tasha_vifeedback",
		.be_id = MSM_BACKEND_DAI_SLIMBUS_TX_VI,
		.be_hw_params_fixup = msm_be_hw_params_fixup,
		.ops = &msm_be_ops,
		.ignore_suspend = 1,
		.no_pcm = 1,
		.dpcm_capture = 1,
		.ignore_pmdown_time = 1,
	},
};
};


static struct snd_soc_dai_link msm_tavil_be_dai_links[] = {
static struct snd_soc_dai_link msm_tavil_be_dai_links[] = {
@@ -5431,6 +5449,23 @@ static struct snd_soc_dai_link msm_tavil_be_dai_links[] = {
		.ignore_pmdown_time = 1,
		.ignore_pmdown_time = 1,
		.ignore_suspend = 1,
		.ignore_suspend = 1,
	},
	},

	/* Slimbus VI Recording */
	{
		.name = LPASS_BE_SLIMBUS_TX_VI,
		.stream_name = "Slimbus VI Capture",
		.cpu_dai_name = "msm-dai-q6-dev.20233",
		.platform_name = "msm-pcm-routing",
		.codec_name = "tavil_codec",
		.codec_dai_name = "tavil_vifeedback",
		.be_id = MSM_BACKEND_DAI_SLIMBUS_TX_VI,
		.be_hw_params_fixup = msm_be_hw_params_fixup,
		.ops = &msm_be_ops,
		.ignore_suspend = 1,
		.no_pcm = 1,
		.dpcm_capture = 1,
		.ignore_pmdown_time = 1,
	},
};
};


static struct snd_soc_dai_link msm_wcn_be_dai_links[] = {
static struct snd_soc_dai_link msm_wcn_be_dai_links[] = {