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 05/16] ASoC: soc-core: add snd_soc_dapm_init()
Date: 23 Aug 2019 09:58:52 +0900	[thread overview]
Message-ID: <87pnkw7lbj.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-dapm has snd_soc_dapm_free() which cleanups debugfs, widgets, list.
But, there is no paired initialize function.
This patch adds snd_soc_dapm_init() and initilaizing dapm

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-dapm.h |  3 +++
 sound/soc/soc-core.c     | 14 ++------------
 sound/soc/soc-dapm.c     | 21 +++++++++++++++++++++
 3 files changed, 26 insertions(+), 12 deletions(-)

diff --git a/include/sound/soc-dapm.h b/include/sound/soc-dapm.h
index 2aa73d6..dd993dd 100644
--- a/include/sound/soc-dapm.h
+++ b/include/sound/soc-dapm.h
@@ -416,6 +416,9 @@ int snd_soc_dapm_update_dai(struct snd_pcm_substream *substream,
 /* dapm path setup */
 int snd_soc_dapm_new_widgets(struct snd_soc_card *card);
 void snd_soc_dapm_free(struct snd_soc_dapm_context *dapm);
+void snd_soc_dapm_init(struct snd_soc_dapm_context *dapm,
+		       struct snd_soc_card *card,
+		       struct snd_soc_component *component);
 int snd_soc_dapm_add_routes(struct snd_soc_dapm_context *dapm,
 			    const struct snd_soc_dapm_route *route, int num);
 int snd_soc_dapm_del_routes(struct snd_soc_dapm_context *dapm,
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 21c005a..8e831ae 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1023,14 +1023,7 @@ static int soc_probe_component(struct snd_soc_card *card,
 
 	soc_init_component_debugfs(component);
 
-	INIT_LIST_HEAD(&dapm->list);
-	dapm->card		= card;
-	dapm->dev		= component->dev;
-	dapm->component		= component;
-	dapm->bias_level	= SND_SOC_BIAS_OFF;
-	dapm->idle_bias_off	= !component->driver->idle_bias_on;
-	dapm->suspend_bias_off	= component->driver->suspend_bias_off;
-	list_add(&dapm->list, &card->dapm_list);
+	snd_soc_dapm_init(dapm, card, component);
 
 	ret = snd_soc_dapm_new_controls(dapm,
 					component->driver->dapm_widgets,
@@ -1937,10 +1930,7 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
 	}
 	mutex_lock_nested(&card->mutex, SND_SOC_CARD_CLASS_INIT);
 
-	card->dapm.bias_level = SND_SOC_BIAS_OFF;
-	card->dapm.dev = card->dev;
-	card->dapm.card = card;
-	list_add(&card->dapm.list, &card->dapm_list);
+	snd_soc_dapm_init(&card->dapm, card, NULL);
 
 	/* check whether any platform is ignore machine FE and using topology */
 	soc_check_tplg_fes(card);
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 10819b3..b6378f0 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -4717,6 +4717,27 @@ void snd_soc_dapm_free(struct snd_soc_dapm_context *dapm)
 }
 EXPORT_SYMBOL_GPL(snd_soc_dapm_free);
 
+void snd_soc_dapm_init(struct snd_soc_dapm_context *dapm,
+		       struct snd_soc_card *card,
+		       struct snd_soc_component *component)
+{
+	dapm->card		= card;
+	dapm->component		= component;
+	dapm->bias_level	= SND_SOC_BIAS_OFF;
+
+	if (component) {
+		dapm->dev		= component->dev;
+		dapm->idle_bias_off	= !component->driver->idle_bias_on,
+		dapm->suspend_bias_off	= component->driver->suspend_bias_off;
+	} else {
+		dapm->dev		= card->dev;
+	}
+
+	INIT_LIST_HEAD(&dapm->list);
+	list_add(&dapm->list, &card->dapm_list);
+}
+EXPORT_SYMBOL_GPL(snd_soc_dapm_init);
+
 static void soc_dapm_shutdown_dapm(struct snd_soc_dapm_context *dapm)
 {
 	struct snd_soc_card *card = dapm->card;
-- 
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 ` [PATCH 02/16] ASoC: soc-core: add soc_rtd_free() Kuninori Morimoto
2019-09-02 12:23   ` [alsa-devel] Applied "ASoC: soc-core: add soc_rtd_free()" to the asoc tree 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 ` Kuninori Morimoto [this message]
2019-09-02 12:23   ` [alsa-devel] Applied "ASoC: soc-core: add snd_soc_dapm_init()" " 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=87pnkw7lbj.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.