Commit da704f26 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown

ASoC: soc-core: merge snd_soc_remove_dai_link() and soc_unbind_dai_link()

We don't need to separete snd_soc_remove_dai_link() and
soc_unbind_dai_link() anymore. Let's merge these.
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87pni5hkx1.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 63dc47da
...@@ -1049,15 +1049,36 @@ static int soc_dai_link_sanity_check(struct snd_soc_card *card, ...@@ -1049,15 +1049,36 @@ static int soc_dai_link_sanity_check(struct snd_soc_card *card,
return 0; return 0;
} }
static void soc_unbind_dai_link(struct snd_soc_card *card, /**
* snd_soc_remove_dai_link - Remove a DAI link from the list
* @card: The ASoC card that owns the link
* @dai_link: The DAI link to remove
*
* This function removes a DAI link from the ASoC card's link list.
*
* For DAI links previously added by topology, topology should
* remove them by using the dobj embedded in the link.
*/
void snd_soc_remove_dai_link(struct snd_soc_card *card,
struct snd_soc_dai_link *dai_link) struct snd_soc_dai_link *dai_link)
{ {
struct snd_soc_pcm_runtime *rtd; struct snd_soc_pcm_runtime *rtd;
lockdep_assert_held(&client_mutex);
/*
* Notify the machine driver for extra destruction
*/
if (card->remove_dai_link)
card->remove_dai_link(card, dai_link);
list_del(&dai_link->list);
rtd = snd_soc_get_pcm_runtime(card, dai_link->name); rtd = snd_soc_get_pcm_runtime(card, dai_link->name);
if (rtd) if (rtd)
soc_free_pcm_runtime(rtd); soc_free_pcm_runtime(rtd);
} }
EXPORT_SYMBOL_GPL(snd_soc_remove_dai_link);
/** /**
* snd_soc_add_dai_link - Add a DAI link dynamically * snd_soc_add_dai_link - Add a DAI link dynamically
...@@ -1434,33 +1455,6 @@ void snd_soc_disconnect_sync(struct device *dev) ...@@ -1434,33 +1455,6 @@ void snd_soc_disconnect_sync(struct device *dev)
} }
EXPORT_SYMBOL_GPL(snd_soc_disconnect_sync); EXPORT_SYMBOL_GPL(snd_soc_disconnect_sync);
/**
* snd_soc_remove_dai_link - Remove a DAI link from the list
* @card: The ASoC card that owns the link
* @dai_link: The DAI link to remove
*
* This function removes a DAI link from the ASoC card's link list.
*
* For DAI links previously added by topology, topology should
* remove them by using the dobj embedded in the link.
*/
void snd_soc_remove_dai_link(struct snd_soc_card *card,
struct snd_soc_dai_link *dai_link)
{
lockdep_assert_held(&client_mutex);
/*
* Notify the machine driver for extra destruction
*/
if (card->remove_dai_link)
card->remove_dai_link(card, dai_link);
list_del(&dai_link->list);
soc_unbind_dai_link(card, dai_link);
}
EXPORT_SYMBOL_GPL(snd_soc_remove_dai_link);
static int soc_link_dai_pcm_new(struct snd_soc_dai **dais, int num_dais, static int soc_link_dai_pcm_new(struct snd_soc_dai **dais, int num_dais,
struct snd_soc_pcm_runtime *rtd) struct snd_soc_pcm_runtime *rtd)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment