summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2019-09-04 03:15:35 +0300
committerMark Brown <broonie@kernel.org>2019-09-09 13:03:59 +0300
commit4893a2eb34a9722501915a0b75844aa11956c10d (patch)
treebb829386d9f2a45110ca0914e97b2ff33ea64272
parentbee886f1ea9d9e58bef8204c543a409c399f8744 (diff)
downloadlinux-4893a2eb34a9722501915a0b75844aa11956c10d.tar.xz
ASoC: soc-core: add soc_unbind_aux_dev()
It is easy to read code if it is cleanly using paired function/naming, like start <-> stop, register <-> unregister, etc, etc. But, current ALSA SoC code is very random, unbalance, not paired, etc. It is easy to create bug at the such code, and it will be difficult to debug. soc-core.c has soc_bind_aux_dev(), but, there is no its paired soc_unbind_aux_dev(). This patch adds soc_unbind_aux_dev(). Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://lore.kernel.org/r/87sgpcor14.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/soc-core.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index d7761df03e19..2960070e68bc 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1559,6 +1559,12 @@ static int soc_link_init(struct snd_soc_card *card,
return ret;
}
+static void soc_unbind_aux_dev(struct snd_soc_component *component)
+{
+ component->init = NULL;
+ list_del(&component->card_aux_list);
+}
+
static int soc_bind_aux_dev(struct snd_soc_card *card)
{
struct snd_soc_component *component;
@@ -1612,7 +1618,7 @@ static void soc_remove_aux_devices(struct snd_soc_card *card)
if (comp->driver->remove_order == order) {
soc_remove_component(comp);
/* remove it from the card's aux_comp_list */
- list_del(&comp->card_aux_list);
+ soc_unbind_aux_dev(comp);
}
}
}