Alsa-Devel Archive on lore.kernel.org
 help / color / Atom feed
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
To: Mark Brown <broonie@kernel.org>
Cc: Linux-ALSA <alsa-devel@alsa-project.org>,
	Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Subject: [alsa-devel] [PATCH 16/21] ASoC: soc-core: add snd_soc_unregister_dai()
Date: 09 Oct 2019 13:31:01 +0900
Message-ID: <875zkyilq2.wl-kuninori.morimoto.gx@renesas.com> (raw)
In-Reply-To: <87sgo2ilso.wl-kuninori.morimoto.gx@renesas.com>


From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

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 is difficult to debug.

This patch adds missing soc_del_dai() and snd_soc_unregister_dai().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc.h  |  1 +
 sound/soc/soc-core.c | 19 ++++++++++++++-----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/include/sound/soc.h b/include/sound/soc.h
index 827322a..766fa81 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -1329,6 +1329,7 @@ struct snd_soc_dai_link *snd_soc_find_dai_link(struct snd_soc_card *card,
 int snd_soc_register_dai(struct snd_soc_component *component,
 			 struct snd_soc_dai_driver *dai_drv,
 			 bool legacy_dai_naming);
+void snd_soc_unregister_dai(struct snd_soc_dai *dai);
 
 struct snd_soc_dai *snd_soc_find_dai(
 	const struct snd_soc_dai_link_component *dlc);
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 12cb1a0..d9f968c 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -2535,6 +2535,12 @@ static inline char *fmt_multiple_name(struct device *dev,
 	return devm_kstrdup(dev, dai_drv->name, GFP_KERNEL);
 }
 
+static void soc_del_dai(struct snd_soc_dai *dai)
+{
+	dev_dbg(dai->dev, "ASoC: Unregistered DAI '%s'\n", dai->name);
+	list_del(&dai->list);
+}
+
 /* Create a DAI and add it to the component's DAI list */
 static struct snd_soc_dai *soc_add_dai(struct snd_soc_component *component,
 	struct snd_soc_dai_driver *dai_drv,
@@ -2584,6 +2590,12 @@ static struct snd_soc_dai *soc_add_dai(struct snd_soc_component *component,
 	return dai;
 }
 
+void snd_soc_unregister_dai(struct snd_soc_dai *dai)
+{
+	soc_del_dai(dai);
+}
+EXPORT_SYMBOL_GPL(snd_soc_unregister_dai);
+
 /**
  * snd_soc_register_dai - Register a DAI dynamically & create its widgets
  *
@@ -2637,11 +2649,8 @@ static void snd_soc_unregister_dais(struct snd_soc_component *component)
 {
 	struct snd_soc_dai *dai, *_dai;
 
-	for_each_component_dais_safe(component, dai, _dai) {
-		dev_dbg(component->dev, "ASoC: Unregistered DAI '%s'\n",
-			dai->name);
-		list_del(&dai->list);
-	}
+	for_each_component_dais_safe(component, dai, _dai)
+		snd_soc_unregister_dai(dai);
 }
 
 /**
-- 
2.7.4

_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

  parent reply index

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-09  4:29 [alsa-devel] [PATCH 00/21] ASoC: soc-core cleanup - step 4 Kuninori Morimoto
2019-10-09  4:29 ` [alsa-devel] [PATCH 01/21] ASoC: soc-core: remove for_each_rtdcom_safe() Kuninori Morimoto
2019-10-09  4:29 ` [alsa-devel] [PATCH 02/21] ASoC: soc-core: add for_each_rtd_components() and replace Kuninori Morimoto
2019-10-09  4:30 ` [alsa-devel] [PATCH 03/21] ASoC: soc-core: move soc_init_dai_link() Kuninori Morimoto
2019-10-09  4:30 ` [alsa-devel] [PATCH 04/21] ASoC: soc-core: rename soc_init_dai_link() to soc_dai_link_sanity_check() Kuninori Morimoto
2019-10-10 14:17   ` Pierre-Louis Bossart
2019-10-11  1:19     ` Kuninori Morimoto
2019-10-11 13:38       ` Pierre-Louis Bossart
2019-10-09  4:30 ` [alsa-devel] [PATCH 05/21] ASoC: soc-core: remove duplicated soc_is_dai_link_bound() Kuninori Morimoto
2019-10-10 15:09   ` Pierre-Louis Bossart
2019-10-09  4:30 ` [alsa-devel] [PATCH 06/21] ASoC: soc-core: call soc_bind_dai_link() under snd_soc_add_dai_link() Kuninori Morimoto
2019-10-09  4:30 ` [alsa-devel] [PATCH 07/21] ASoC: soc-core: add soc_unbind_dai_link() Kuninori Morimoto
2019-10-09  4:30 ` [alsa-devel] [PATCH 08/21] ASoC: soc-core: snd_soc_unbind_card() cleanup Kuninori Morimoto
2019-10-09  4:30 ` [alsa-devel] [PATCH 09/21] ASoC: soc-core: remove unneeded snd_soc_tplg_component_remove() Kuninori Morimoto
2019-10-10 15:09   ` Pierre-Louis Bossart
2019-10-11  1:30     ` Kuninori Morimoto
2019-10-11 13:40       ` Pierre-Louis Bossart
2019-10-09  4:30 ` [alsa-devel] [PATCH 10/21] ASoC: soc-core: move snd_soc_lookup_component() Kuninori Morimoto
2019-10-09  4:30 ` [alsa-devel] [PATCH 11/21] ASoC: soc-core: add snd_soc_del_component() Kuninori Morimoto
2019-10-10 15:16   ` Pierre-Louis Bossart
2019-10-11  1:35     ` Kuninori Morimoto
2019-10-09  4:30 ` [alsa-devel] [PATCH 12/21] ASoC: soc-core: use snd_soc_lookup_component() at snd_soc_unregister_component() Kuninori Morimoto
2019-10-10 15:19   ` Pierre-Louis Bossart
2019-10-11  1:38     ` Kuninori Morimoto
2019-10-09  4:30 ` [alsa-devel] [PATCH 13/21] ASoC: soc-core: move snd_soc_register_dai() Kuninori Morimoto
2019-10-09  4:30 ` [alsa-devel] [PATCH 14/21] ASoC: soc-core: have legacy_dai_naming at snd_soc_register_dai() Kuninori Morimoto
2019-10-10 15:26   ` Pierre-Louis Bossart
2019-10-11  1:07     ` Kuninori Morimoto
2019-10-11 13:43       ` Pierre-Louis Bossart
2019-10-09  4:30 ` [alsa-devel] [PATCH 15/21] ASoC: soc-core: move snd_soc_unregister_dais() Kuninori Morimoto
2019-10-09  4:31 ` Kuninori Morimoto [this message]
2019-10-09  4:31 ` [alsa-devel] [PATCH 17/21] ASoC: soc-core: don't call snd_soc_dapm_new_dai_widgets() at snd_soc_register_dai() Kuninori Morimoto
2019-10-09  4:31 ` [alsa-devel] [PATCH 18/21] ASoC: soc-core: use mutex_lock() at snd_soc_add_component() Kuninori Morimoto
2019-10-10 15:29   ` Pierre-Louis Bossart
2019-10-09  4:31 ` [alsa-devel] [PATCH 19/21] ASoC: soc-core: call snd_soc_register_dai() from snd_soc_register_dais() Kuninori Morimoto
2019-10-10 15:34   ` Pierre-Louis Bossart
2019-10-11  1:44     ` Kuninori Morimoto
2019-10-09  4:31 ` [alsa-devel] [PATCH 20/21] ASoC: soc-core: remove topology specific operation Kuninori Morimoto
2019-10-09  4:31 ` [alsa-devel] [PATCH 21/21] ASoC: soc.h: dobj is used only when SND_SOC_TOPOLOGY Kuninori Morimoto
2019-10-09 14:16 ` [alsa-devel] [PATCH 00/21] ASoC: soc-core cleanup - step 4 Pierre-Louis Bossart
2019-10-10 15:38 ` Pierre-Louis Bossart
2019-10-11  1:53   ` Kuninori Morimoto

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=875zkyilq2.wl-kuninori.morimoto.gx@renesas.com \
    --to=kuninori.morimoto.gx@renesas.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=pierre-louis.bossart@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Alsa-Devel Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/alsa-devel/0 alsa-devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 alsa-devel alsa-devel/ https://lore.kernel.org/alsa-devel \
		alsa-devel@alsa-project.org
	public-inbox-index alsa-devel

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.alsa-project.alsa-devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git