ASoC: soc-topology: use modern dai_link style

ASoC is now supporting modern style dai_link
(= snd_soc_dai_link_component) for CPU/Codec/Platform.
This patch switches to use it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Kuninori Morimoto 2019-06-06 13:19:14 +09:00 коммит произвёл Mark Brown
Родитель f60adf3851
Коммит 23b946ce28
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 24D68B725D5487D0
1 изменённых файлов: 16 добавлений и 6 удалений

Просмотреть файл

@ -560,7 +560,7 @@ static void remove_link(struct snd_soc_component *comp,
kfree(link->name); kfree(link->name);
kfree(link->stream_name); kfree(link->stream_name);
kfree(link->cpu_dai_name); kfree(link->cpus->dai_name);
list_del(&dobj->list); list_del(&dobj->list);
snd_soc_remove_dai_link(comp->card, link); snd_soc_remove_dai_link(comp->card, link);
@ -1879,12 +1879,22 @@ static int soc_tplg_fe_link_create(struct soc_tplg *tplg,
struct snd_soc_tplg_pcm *pcm) struct snd_soc_tplg_pcm *pcm)
{ {
struct snd_soc_dai_link *link; struct snd_soc_dai_link *link;
struct snd_soc_dai_link_component *dlc;
int ret; int ret;
link = kzalloc(sizeof(struct snd_soc_dai_link), GFP_KERNEL); /* link + cpu + codec */
link = kzalloc(sizeof(*link) + (2 * sizeof(*dlc)), GFP_KERNEL);
if (link == NULL) if (link == NULL)
return -ENOMEM; return -ENOMEM;
dlc = (struct snd_soc_dai_link_component *)(link + 1);
link->cpus = &dlc[0];
link->codecs = &dlc[1];
link->num_cpus = 1;
link->num_codecs = 1;
if (strlen(pcm->pcm_name)) { if (strlen(pcm->pcm_name)) {
link->name = kstrdup(pcm->pcm_name, GFP_KERNEL); link->name = kstrdup(pcm->pcm_name, GFP_KERNEL);
link->stream_name = kstrdup(pcm->pcm_name, GFP_KERNEL); link->stream_name = kstrdup(pcm->pcm_name, GFP_KERNEL);
@ -1892,10 +1902,10 @@ static int soc_tplg_fe_link_create(struct soc_tplg *tplg,
link->id = le32_to_cpu(pcm->pcm_id); link->id = le32_to_cpu(pcm->pcm_id);
if (strlen(pcm->dai_name)) if (strlen(pcm->dai_name))
link->cpu_dai_name = kstrdup(pcm->dai_name, GFP_KERNEL); link->cpus->dai_name = kstrdup(pcm->dai_name, GFP_KERNEL);
link->codec_name = "snd-soc-dummy"; link->codecs->name = "snd-soc-dummy";
link->codec_dai_name = "snd-soc-dummy-dai"; link->codecs->dai_name = "snd-soc-dummy-dai";
/* enable DPCM */ /* enable DPCM */
link->dynamic = 1; link->dynamic = 1;
@ -1912,7 +1922,7 @@ static int soc_tplg_fe_link_create(struct soc_tplg *tplg,
dev_err(tplg->comp->dev, "ASoC: FE link loading failed\n"); dev_err(tplg->comp->dev, "ASoC: FE link loading failed\n");
kfree(link->name); kfree(link->name);
kfree(link->stream_name); kfree(link->stream_name);
kfree(link->cpu_dai_name); kfree(link->cpus->dai_name);
kfree(link); kfree(link);
return ret; return ret;
} }