summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaojun Sang <xsang@codeaurora.org>2016-11-08 17:37:38 +0800
committerXiaojun Sang <xsang@codeaurora.org>2016-12-05 21:50:32 +0800
commit713c5979d0a7daee762d97d62b548cceae70540a (patch)
tree8427ff5ba40a468ebea3a26b43a6fd566936d91b
parent641fb2817f52b99bee9abec2a287b9da9bd4e3b1 (diff)
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: Xiaojun Sang <xsang@codeaurora.org>
-rw-r--r--sound/soc/msm/msm8998.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/sound/soc/msm/msm8998.c b/sound/soc/msm/msm8998.c
index 1df839333d09..8f4f60a7c97b 100644
--- a/sound/soc/msm/msm8998.c
+++ b/sound/soc/msm/msm8998.c
@@ -2765,6 +2765,7 @@ static int msm_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
break;
case MSM_BACKEND_DAI_SLIMBUS_4_TX:
+ case MSM_BACKEND_DAI_SLIMBUS_TX_VI:
param_set_mask(params, SNDRV_PCM_HW_PARAM_FORMAT,
SNDRV_PCM_FORMAT_S32_LE);
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 */
else if (dai_link->be_id == MSM_BACKEND_DAI_SLIMBUS_1_TX)
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;
else
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_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[] = {
@@ -5431,6 +5449,23 @@ static struct snd_soc_dai_link msm_tavil_be_dai_links[] = {
.ignore_pmdown_time = 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[] = {