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: [alsa-devel] [PATCH resend 11/11] ASoC: soc-core: self contained soc_unbind_aux_dev()
Date: 04 Sep 2019 09:15:40 +0900	[thread overview]
Message-ID: <87r24wor0z.wl-kuninori.morimoto.gx@renesas.com> (raw)
In-Reply-To: <877e6oq5nv.wl-kuninori.morimoto.gx@renesas.com>

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

Current soc_unbind_aux_dev() implementation is very half,
thus it is very unreadable.

	for_each_comp_order(order) {
		for_each_card_auxs_safe(card, comp, _comp) {

(1)			if (comp->driver->remove_order == order) {
				...
=>				soc_unbind_aux_dev(comp);
			}
	}

soc_unbind_aux_dev() itself is not related to remove_order (1).
And, it is called from soc_remove_aux_devices(), even though
its paired function soc_bind_aux_dev() is called from
snd_soc_instantiate_card().
It is very unbalance, and very difficult to understand.

This patch do
1) update soc_bind_aux_dev() to self contained
2) call it from soc_cleanup_card_resources() to make up balance

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

diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 2960070..35f48e9 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1559,10 +1559,14 @@ static int soc_link_init(struct snd_soc_card *card,
 	return ret;
 }
 
-static void soc_unbind_aux_dev(struct snd_soc_component *component)
+static void soc_unbind_aux_dev(struct snd_soc_card *card)
 {
-	component->init = NULL;
-	list_del(&component->card_aux_list);
+	struct snd_soc_component *component, *_component;
+
+	for_each_card_auxs_safe(card, component, _component) {
+		component->init = NULL;
+		list_del(&component->card_aux_list);
+	}
 }
 
 static int soc_bind_aux_dev(struct snd_soc_card *card)
@@ -1614,12 +1618,8 @@ static void soc_remove_aux_devices(struct snd_soc_card *card)
 
 	for_each_comp_order(order) {
 		for_each_card_auxs_safe(card, comp, _comp) {
-
-			if (comp->driver->remove_order == order) {
+			if (comp->driver->remove_order == order)
 				soc_remove_component(comp);
-				/* remove it from the card's aux_comp_list */
-				soc_unbind_aux_dev(comp);
-			}
 		}
 	}
 }
@@ -1932,6 +1932,7 @@ static void soc_cleanup_card_resources(struct snd_soc_card *card)
 
 	/* remove auxiliary devices */
 	soc_remove_aux_devices(card);
+	soc_unbind_aux_dev(card);
 
 	snd_soc_dapm_free(&card->dapm);
 	soc_cleanup_card_debugfs(card);
-- 
2.7.4

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

  parent reply	other threads:[~2019-09-04  0:23 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-04  0:14 [alsa-devel] [PATCH resend 00/11] ASoC: soc-core cleanup Kuninori Morimoto
2019-09-04  0:14 ` [alsa-devel] [PATCH resend 01/11] ASoC: soc-core: add comment to jack at soc_remove_component() Kuninori Morimoto
2019-09-04 17:53   ` [alsa-devel] Applied "ASoC: soc-core: add comment to jack at soc_remove_component()" to the asoc tree Mark Brown
2019-09-04  0:14 ` [alsa-devel] [PATCH resend 02/11] ASoC: soc-core: self contained soc_probe_link_components() Kuninori Morimoto
2019-09-09 10:07   ` [alsa-devel] Applied "ASoC: soc-core: self contained soc_probe_link_components()" to the asoc tree Mark Brown
2019-09-04  0:14 ` [alsa-devel] [PATCH resend 03/11] ASoC: soc-core: self contained soc_remove_link_components() Kuninori Morimoto
2019-09-09 10:07   ` [alsa-devel] Applied "ASoC: soc-core: self contained soc_remove_link_components()" to the asoc tree Mark Brown
2019-09-04  0:14 ` [alsa-devel] [PATCH resend 04/11] ASoC: soc-core: self contained soc_remove_link_dais() Kuninori Morimoto
2019-09-09 10:07   ` [alsa-devel] Applied "ASoC: soc-core: self contained soc_remove_link_dais()" to the asoc tree Mark Brown
2019-09-04  0:15 ` [alsa-devel] [PATCH resend 05/11] ASoC: soc-core: move soc_probe_dai() next to soc_remove_dai() Kuninori Morimoto
2019-09-09 10:07   ` [alsa-devel] Applied "ASoC: soc-core: move soc_probe_dai() next to soc_remove_dai()" to the asoc tree Mark Brown
2019-09-04  0:15 ` [alsa-devel] [PATCH resend 06/11] ASoC: soc-core: add new soc_link_init() Kuninori Morimoto
2019-09-09 10:07   ` [alsa-devel] Applied "ASoC: soc-core: add new soc_link_init()" to the asoc tree Mark Brown
2019-09-04  0:15 ` [alsa-devel] [PATCH resend 07/11] ASoC: soc-core: self contained soc_probe_link_dais() Kuninori Morimoto
2019-09-09 10:07   ` [alsa-devel] Applied "ASoC: soc-core: self contained soc_probe_link_dais()" to the asoc tree Mark Brown
2019-09-04  0:15 ` [alsa-devel] [PATCH resend 08/11] ASoC: soc-core: move soc_probe_link_dais() next to soc_remove_link_dais() Kuninori Morimoto
2019-09-09 10:07   ` [alsa-devel] Applied "ASoC: soc-core: move soc_probe_link_dais() next to soc_remove_link_dais()" to the asoc tree Mark Brown
2019-09-04  0:15 ` [alsa-devel] [PATCH resend 09/11] ASoC: soc-core: self contained soc_bind_aux_dev() Kuninori Morimoto
2019-09-09 10:07   ` [alsa-devel] Applied "ASoC: soc-core: self contained soc_bind_aux_dev()" to the asoc tree Mark Brown
2019-09-04  0:15 ` [alsa-devel] [PATCH resend 10/11] ASoC: soc-core: add soc_unbind_aux_dev() Kuninori Morimoto
2019-09-09 10:07   ` [alsa-devel] Applied "ASoC: soc-core: add soc_unbind_aux_dev()" to the asoc tree Mark Brown
2019-09-04  0:15 ` Kuninori Morimoto [this message]
2019-09-09  9:59   ` [alsa-devel] [PATCH resend 11/11] ASoC: soc-core: self contained soc_unbind_aux_dev() Mark Brown
2019-09-09 10:07   ` [alsa-devel] Applied "ASoC: soc-core: self contained soc_unbind_aux_dev()" to the asoc tree Mark Brown

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=87r24wor0z.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.