All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
To: Mark Brown <broonie@kernel.org>
Cc: Linux-ALSA <alsa-devel@alsa-project.org>
Subject: [PATCH 02/16] ASoC: soc-core: add soc_rtd_free()
Date: 23 Aug 2019 09:58:37 +0900	[thread overview]
Message-ID: <87tva87lby.wl-kuninori.morimoto.gx@renesas.com> (raw)
In-Reply-To: <87wof47ldc.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 it will be difficult to
debug.

soc_rtd_init() was soc_post_component_init(), but there was no
its paired soc_post_component_free(), but it is done at
soc_remove_link_dais().
This means it is difficult to find related code.

This patch adds soc_rtd_free() which is paired soc_rtd_init().
soc_rtd_xxx() will be more cleanuped in the future.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 sound/soc/soc-core.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 3c087b4..3754a08 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -975,17 +975,15 @@ static void soc_remove_dai(struct snd_soc_dai *dai, int order)
 	dai->probed = 0;
 }
 
+static void soc_rtd_free(struct snd_soc_pcm_runtime *rtd); /* remove me */
 static void soc_remove_link_dais(struct snd_soc_card *card,
 		struct snd_soc_pcm_runtime *rtd, int order)
 {
 	int i;
 	struct snd_soc_dai *codec_dai;
 
-	/* unregister the rtd device */
-	if (rtd->dev_registered) {
-		device_unregister(rtd->dev);
-		rtd->dev_registered = 0;
-	}
+	/* finalize rtd device */
+	soc_rtd_free(rtd);
 
 	/* remove the CODEC DAI */
 	for_each_rtd_codec_dai(rtd, i, codec_dai)
@@ -1340,6 +1338,15 @@ static int soc_probe_component(struct snd_soc_card *card,
 	return ret;
 }
 
+static void soc_rtd_free(struct snd_soc_pcm_runtime *rtd)
+{
+	if (rtd->dev_registered) {
+		/* we don't need to call kfree() for rtd->dev */
+		device_unregister(rtd->dev);
+		rtd->dev_registered = 0;
+	}
+}
+
 static void soc_rtd_release(struct device *dev)
 {
 	kfree(dev);
-- 
2.7.4

  parent reply	other threads:[~2019-08-23  0:58 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-23  0:57 [PATCH 00/16] ASoC: soc-core cleanup Kuninori Morimoto
2019-08-23  0:58 ` [PATCH 01/16] ASoC: soc-core: rename soc_post_component_init() to soc_rtd_init() Kuninori Morimoto
2019-08-23 10:46   ` Applied "ASoC: soc-core: rename soc_post_component_init() to soc_rtd_init()" to the asoc tree Mark Brown
2019-08-23  0:58 ` Kuninori Morimoto [this message]
2019-09-02 12:23   ` [alsa-devel] Applied "ASoC: soc-core: add soc_rtd_free()" " Mark Brown
2019-08-23  0:58 ` [PATCH 03/16] ASoC: soc-core: move soc_probe_component() position Kuninori Morimoto
2019-09-02 12:23   ` [alsa-devel] Applied "ASoC: soc-core: move soc_probe_component() position" to the asoc tree Mark Brown
2019-08-23  0:58 ` [PATCH 04/16] ASoC: soc-core: dapm related setup at one place Kuninori Morimoto
2019-09-02 12:23   ` [alsa-devel] Applied "ASoC: soc-core: dapm related setup at one place" to the asoc tree Mark Brown
2019-08-23  0:58 ` [PATCH 05/16] ASoC: soc-core: add snd_soc_dapm_init() Kuninori Morimoto
2019-09-02 12:23   ` [alsa-devel] Applied "ASoC: soc-core: add snd_soc_dapm_init()" to the asoc tree Mark Brown
2019-08-23  0:58 ` [PATCH 06/16] ASoC: soc-core: move soc_probe_link_components() position Kuninori Morimoto
2019-09-02 12:23   ` [alsa-devel] Applied "ASoC: soc-core: move soc_probe_link_components() position" to the asoc tree Mark Brown
2019-08-23  0:59 ` [PATCH 07/16] ASoC: soc-core: self contained soc_probe_link_components() Kuninori Morimoto
2019-08-23  0:59 ` [PATCH 08/16] ASoC: soc-core: self contained soc_remove_link_components() Kuninori Morimoto
2019-08-23  0:59 ` [PATCH 09/16] ASoC: soc-core: self contained soc_remove_link_dais() Kuninori Morimoto
2019-08-23  0:59 ` [PATCH 10/16] ASoC: soc-core: move soc_probe_dai() next to soc_remove_dai() Kuninori Morimoto
2019-08-23  0:59 ` [PATCH 11/16] ASoC: soc-core: add new soc_link_init() Kuninori Morimoto
2019-08-23  0:59 ` [PATCH 12/16] ASoC: soc-core: self contained soc_probe_link_dais() Kuninori Morimoto
2019-08-23  0:59 ` [PATCH 13/16] ASoC: soc-core: move soc_probe_link_dais() next to soc_remove_link_dais() Kuninori Morimoto
2019-08-23  0:59 ` [PATCH 14/16] ASoC: soc-core: self contained soc_bind_aux_dev() Kuninori Morimoto
2019-08-23  0:59 ` [PATCH 15/16] ASoC: soc-core: add soc_unbind_aux_dev() Kuninori Morimoto
2019-08-23  1:00 ` [PATCH 16/16] ASoC: soc-core: self contained soc_unbind_aux_dev() Kuninori Morimoto

Reply instructions:

You may reply publicly 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=87tva87lby.wl-kuninori.morimoto.gx@renesas.com \
    --to=kuninori.morimoto.gx@renesas.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.