diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2019-12-10 09:34:14 +0900 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-12-10 13:15:48 +0000 |
commit | d6f31e0e6d09594717ed21c7c9238d9fbdb30ccb (patch) | |
tree | d4179dd9865cd0e2b991c216818eaa7ec9815a06 /sound/soc/soc-topology.c | |
parent | 4468189ff307f294491628a49702a04de22bffb8 (diff) | |
download | lwn-d6f31e0e6d09594717ed21c7c9238d9fbdb30ccb.tar.gz lwn-d6f31e0e6d09594717ed21c7c9238d9fbdb30ccb.zip |
ASoC: soc-core: move snd_soc_find_dai_link()
snd_soc_find_dai_link() is soc-topology specific function.
We don't need to have it at soc-core.
This patch moves it to soc-topology.c
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/878snlyq61.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/soc-topology.c')
-rw-r--r-- | sound/soc/soc-topology.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c index 81d2af000a5c..cbd605b96722 100644 --- a/sound/soc/soc-topology.c +++ b/sound/soc/soc-topology.c @@ -2207,6 +2207,47 @@ static int link_new_ver(struct soc_tplg *tplg, return 0; } +/** + * snd_soc_find_dai_link - Find a DAI link + * + * @card: soc card + * @id: DAI link ID to match + * @name: DAI link name to match, optional + * @stream_name: DAI link stream name to match, optional + * + * This function will search all existing DAI links of the soc card to + * find the link of the same ID. Since DAI links may not have their + * unique ID, so name and stream name should also match if being + * specified. + * + * Return: pointer of DAI link, or NULL if not found. + */ +static struct snd_soc_dai_link *snd_soc_find_dai_link(struct snd_soc_card *card, + int id, const char *name, + const char *stream_name) +{ + struct snd_soc_pcm_runtime *rtd; + struct snd_soc_dai_link *link; + + for_each_card_rtds(card, rtd) { + link = rtd->dai_link; + + if (link->id != id) + continue; + + if (name && (!link->name || strcmp(name, link->name))) + continue; + + if (stream_name && (!link->stream_name + || strcmp(stream_name, link->stream_name))) + continue; + + return link; + } + + return NULL; +} + /* Find and configure an existing physical DAI link */ static int soc_tplg_link_config(struct soc_tplg *tplg, struct snd_soc_tplg_link_config *cfg) |