ASoC: msm8998: add asm loopback FE DAI

Add asm loopback FE DAI to support the audio asm loopback
use case for msm8998 platform.

CRs-Fixed: 1099656
Change-Id: Ia1c6d8dfd75eb21cde8de7b9bfcab4e4277e339f
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
This commit is contained in:
Kuirong Wang 2016-12-12 17:47:41 -08:00 committed by Gerrit - the friendly Code Review server
parent a80e267a8c
commit 9286838256

View file

@ -4947,6 +4947,26 @@ static struct snd_soc_dai_link msm_tavil_fe_dai_links[] = {
},
};
static struct snd_soc_dai_link msm_common_misc_fe_dai_links[] = {
{
.name = MSM_DAILINK_NAME(ASM Loopback),
.stream_name = "MultiMedia6",
.cpu_dai_name = "MultiMedia6",
.platform_name = "msm-pcm-loopback",
.dynamic = 1,
.dpcm_playback = 1,
.dpcm_capture = 1,
.codec_dai_name = "snd-soc-dummy-dai",
.codec_name = "snd-soc-dummy",
.trigger = {SND_SOC_DPCM_TRIGGER_POST,
SND_SOC_DPCM_TRIGGER_POST},
.ignore_suspend = 1,
.no_host_mode = SND_SOC_DAI_LINK_NO_HOST,
.ignore_pmdown_time = 1,
.be_id = MSM_FRONTEND_DAI_MULTIMEDIA6,
},
};
static struct snd_soc_dai_link msm_common_be_dai_links[] = {
/* Backend AFE DAI Links */
{
@ -5870,6 +5890,7 @@ static struct snd_soc_dai_link msm_auxpcm_be_dai_links[] = {
static struct snd_soc_dai_link msm_tasha_dai_links[
ARRAY_SIZE(msm_common_dai_links) +
ARRAY_SIZE(msm_tasha_fe_dai_links) +
ARRAY_SIZE(msm_common_misc_fe_dai_links) +
ARRAY_SIZE(msm_common_be_dai_links) +
ARRAY_SIZE(msm_tasha_be_dai_links) +
ARRAY_SIZE(msm_wcn_be_dai_links) +
@ -5880,6 +5901,7 @@ static struct snd_soc_dai_link msm_tasha_dai_links[
static struct snd_soc_dai_link msm_tavil_dai_links[
ARRAY_SIZE(msm_common_dai_links) +
ARRAY_SIZE(msm_tavil_fe_dai_links) +
ARRAY_SIZE(msm_common_misc_fe_dai_links) +
ARRAY_SIZE(msm_common_be_dai_links) +
ARRAY_SIZE(msm_tavil_be_dai_links) +
ARRAY_SIZE(msm_wcn_be_dai_links) +
@ -6213,7 +6235,7 @@ static struct snd_soc_card *populate_snd_card_dailinks(struct device *dev)
{
struct snd_soc_card *card = NULL;
struct snd_soc_dai_link *dailink;
int len_1, len_2, len_3;
int len_1, len_2, len_3, len_4;
int total_links;
const struct of_device_id *match;
@ -6228,8 +6250,9 @@ static struct snd_soc_card *populate_snd_card_dailinks(struct device *dev)
card = &snd_soc_card_tasha_msm;
len_1 = ARRAY_SIZE(msm_common_dai_links);
len_2 = len_1 + ARRAY_SIZE(msm_tasha_fe_dai_links);
len_3 = len_2 + ARRAY_SIZE(msm_common_be_dai_links);
total_links = len_3 + ARRAY_SIZE(msm_tasha_be_dai_links);
len_3 = len_2 + ARRAY_SIZE(msm_common_misc_fe_dai_links);
len_4 = len_3 + ARRAY_SIZE(msm_common_be_dai_links);
total_links = len_4 + ARRAY_SIZE(msm_tasha_be_dai_links);
memcpy(msm_tasha_dai_links,
msm_common_dai_links,
sizeof(msm_common_dai_links));
@ -6237,9 +6260,12 @@ static struct snd_soc_card *populate_snd_card_dailinks(struct device *dev)
msm_tasha_fe_dai_links,
sizeof(msm_tasha_fe_dai_links));
memcpy(msm_tasha_dai_links + len_2,
msm_common_misc_fe_dai_links,
sizeof(msm_common_misc_fe_dai_links));
memcpy(msm_tasha_dai_links + len_3,
msm_common_be_dai_links,
sizeof(msm_common_be_dai_links));
memcpy(msm_tasha_dai_links + len_3,
memcpy(msm_tasha_dai_links + len_4,
msm_tasha_be_dai_links,
sizeof(msm_tasha_be_dai_links));
@ -6280,8 +6306,9 @@ static struct snd_soc_card *populate_snd_card_dailinks(struct device *dev)
card = &snd_soc_card_tavil_msm;
len_1 = ARRAY_SIZE(msm_common_dai_links);
len_2 = len_1 + ARRAY_SIZE(msm_tavil_fe_dai_links);
len_3 = len_2 + ARRAY_SIZE(msm_common_be_dai_links);
total_links = len_3 + ARRAY_SIZE(msm_tavil_be_dai_links);
len_3 = len_2 + ARRAY_SIZE(msm_common_misc_fe_dai_links);
len_4 = len_3 + ARRAY_SIZE(msm_common_be_dai_links);
total_links = len_4 + ARRAY_SIZE(msm_tavil_be_dai_links);
memcpy(msm_tavil_dai_links,
msm_common_dai_links,
sizeof(msm_common_dai_links));
@ -6289,9 +6316,12 @@ static struct snd_soc_card *populate_snd_card_dailinks(struct device *dev)
msm_tavil_fe_dai_links,
sizeof(msm_tavil_fe_dai_links));
memcpy(msm_tavil_dai_links + len_2,
msm_common_misc_fe_dai_links,
sizeof(msm_common_misc_fe_dai_links));
memcpy(msm_tavil_dai_links + len_3,
msm_common_be_dai_links,
sizeof(msm_common_be_dai_links));
memcpy(msm_tavil_dai_links + len_3,
memcpy(msm_tavil_dai_links + len_4,
msm_tavil_be_dai_links,
sizeof(msm_tavil_be_dai_links));