diff mbox

[RFC] ASoC: core: remove pointless auxiliary from snd_soc_component

Message ID 87o9xcp6zi.wl%kuninori.morimoto.gx@renesas.com (mailing list archive)
State Accepted
Commit 991454e17070eaf5286a666d9e896fd6fb332c72
Headers show

Commit Message

Kuninori Morimoto March 8, 2017, 7:26 a.m. UTC
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

commit 1a653aa44725 ("ASoC: core: replace aux_comp_list to ...")
tried to replace aux_comp_list to component_dev_list,
but it failed because of binding timing. Thus, Sylwester fixuped it by
commit d2e3a1358c37 ("ASoC: Fix binding and probing of auxiliary...").

One of main purpose of commit 1a653aa44725 ("ASoC: core: replace...")
was remove replaceable list (= list_aux) from snd_soc_component by using
new "auxiliary" flags (but it failed).
Because of this background, current code has reborned card_aux_list
(= same as original list_aux), and almost pointless "auxiliary" flags.

Let's remove pointless "auxiliary" flags by this patch
This means, it is same as revert both
commit 1a653aa44725 ("ASoC: core: replace aux_comp_list to ...") and
commit d2e3a1358c37 ("ASoC: Fix binding and probing of auxiliary...").

Not-yet-Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
request-Tested-by-from: Sylwester Nawrocki <s.nawrocki@samsung.com>
---

>> Sylwester

I created this patch, but I can't check.
Sylwester, can you please check this patch ?

 include/sound/soc.h  |  1 -
 sound/soc/soc-core.c | 15 +++++----------
 2 files changed, 5 insertions(+), 11 deletions(-)

Comments

Kuninori Morimoto March 22, 2017, 4:24 a.m. UTC | #1
Hi Sylwester

Can you test this patch if possible ?

> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> 
> commit 1a653aa44725 ("ASoC: core: replace aux_comp_list to ...")
> tried to replace aux_comp_list to component_dev_list,
> but it failed because of binding timing. Thus, Sylwester fixuped it by
> commit d2e3a1358c37 ("ASoC: Fix binding and probing of auxiliary...").
> 
> One of main purpose of commit 1a653aa44725 ("ASoC: core: replace...")
> was remove replaceable list (= list_aux) from snd_soc_component by using
> new "auxiliary" flags (but it failed).
> Because of this background, current code has reborned card_aux_list
> (= same as original list_aux), and almost pointless "auxiliary" flags.
> 
> Let's remove pointless "auxiliary" flags by this patch
> This means, it is same as revert both
> commit 1a653aa44725 ("ASoC: core: replace aux_comp_list to ...") and
> commit d2e3a1358c37 ("ASoC: Fix binding and probing of auxiliary...").
> 
> Not-yet-Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> request-Tested-by-from: Sylwester Nawrocki <s.nawrocki@samsung.com>
> ---
> 
> >> Sylwester
> 
> I created this patch, but I can't check.
> Sylwester, can you please check this patch ?
> 
>  include/sound/soc.h  |  1 -
>  sound/soc/soc-core.c | 15 +++++----------
>  2 files changed, 5 insertions(+), 11 deletions(-)
> 
> diff --git a/include/sound/soc.h b/include/sound/soc.h
> index dd78507..316fdce 100644
> --- a/include/sound/soc.h
> +++ b/include/sound/soc.h
> @@ -815,7 +815,6 @@ struct snd_soc_component {
>  
>  	unsigned int ignore_pmdown_time:1; /* pmdown_time is ignored at stop */
>  	unsigned int registered_as_component:1;
> -	unsigned int auxiliary:1; /* for auxiliary component of the card */
>  	unsigned int suspended:1; /* is in suspend PM state */
>  
>  	struct list_head list;
> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> index e7d876a..5933851 100644
> --- a/sound/soc/soc-core.c
> +++ b/sound/soc/soc-core.c
> @@ -1777,7 +1777,6 @@ static int soc_bind_aux_dev(struct snd_soc_card *card, int num)
>  	}
>  
>  	component->init = aux_dev->init;
> -	component->auxiliary = 1;
>  	list_add(&component->card_aux_list, &card->aux_comp_list);
>  
>  	return 0;
> @@ -1789,14 +1788,13 @@ static int soc_bind_aux_dev(struct snd_soc_card *card, int num)
>  
>  static int soc_probe_aux_devices(struct snd_soc_card *card)
>  {
> -	struct snd_soc_component *comp, *tmp;
> +	struct snd_soc_component *comp;
>  	int order;
>  	int ret;
>  
>  	for (order = SND_SOC_COMP_ORDER_FIRST; order <= SND_SOC_COMP_ORDER_LAST;
>  		order++) {
> -		list_for_each_entry_safe(comp, tmp, &card->aux_comp_list,
> -					 card_aux_list) {
> +		list_for_each_entry(comp, &card->aux_comp_list, card_aux_list) {
>  			if (comp->driver->probe_order == order) {
>  				ret = soc_probe_component(card,	comp);
>  				if (ret < 0) {
> @@ -1805,7 +1803,6 @@ static int soc_probe_aux_devices(struct snd_soc_card *card)
>  						comp->name, ret);
>  					return ret;
>  				}
> -				list_del(&comp->card_aux_list);
>  			}
>  		}
>  	}
> @@ -1821,14 +1818,12 @@ static void soc_remove_aux_devices(struct snd_soc_card *card)
>  	for (order = SND_SOC_COMP_ORDER_FIRST; order <= SND_SOC_COMP_ORDER_LAST;
>  		order++) {
>  		list_for_each_entry_safe(comp, _comp,
> -			&card->component_dev_list, card_list) {
> -
> -			if (!comp->auxiliary)
> -				continue;
> +			&card->aux_comp_list, card_aux_list) {
>  
>  			if (comp->driver->remove_order == order) {
>  				soc_remove_component(comp);
> -				comp->auxiliary = 0;
> +				/* remove it from the card's aux_comp_list */
> +				list_del(&comp->card_aux_list);
>  			}
>  		}
>  	}
> -- 
> 1.9.1
> 
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
On 03/08/2017 08:26 AM, Kuninori Morimoto wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
>
> commit 1a653aa44725 ("ASoC: core: replace aux_comp_list to ...")
> tried to replace aux_comp_list to component_dev_list,
> but it failed because of binding timing. Thus, Sylwester fixuped it by
> commit d2e3a1358c37 ("ASoC: Fix binding and probing of auxiliary...").
>
> One of main purpose of commit 1a653aa44725 ("ASoC: core: replace...")
> was remove replaceable list (= list_aux) from snd_soc_component by using
> new "auxiliary" flags (but it failed).
> Because of this background, current code has reborned card_aux_list
> (= same as original list_aux), and almost pointless "auxiliary" flags.
>
> Let's remove pointless "auxiliary" flags by this patch
> This means, it is same as revert both
> commit 1a653aa44725 ("ASoC: core: replace aux_comp_list to ...") and
> commit d2e3a1358c37 ("ASoC: Fix binding and probing of auxiliary...").
>
> Not-yet-Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> request-Tested-by-from: Sylwester Nawrocki <s.nawrocki@samsung.com>

I tested in on top of v4.11-rc3 on the TM2 board and didn't notice any issues,
the sound card got initialized properly.

Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Hi Morimoto-san,

On 03/22/2017 05:24 AM, Kuninori Morimoto wrote:
> Can you test this patch if possible ?

My apologies for the delay, I just tested the patch
and it seems all correct.
Kuninori Morimoto March 22, 2017, 11:55 p.m. UTC | #4
Hi Sylwester

> > Can you test this patch if possible ?
> 
> My apologies for the delay, I just tested the patch
> and it seems all correct.

Thank you !
So, I will post it as non-RFC patch and add your Tested-by

Best regards
---
Kuninori Morimoto
diff mbox

Patch

diff --git a/include/sound/soc.h b/include/sound/soc.h
index dd78507..316fdce 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -815,7 +815,6 @@  struct snd_soc_component {
 
 	unsigned int ignore_pmdown_time:1; /* pmdown_time is ignored at stop */
 	unsigned int registered_as_component:1;
-	unsigned int auxiliary:1; /* for auxiliary component of the card */
 	unsigned int suspended:1; /* is in suspend PM state */
 
 	struct list_head list;
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index e7d876a..5933851 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1777,7 +1777,6 @@  static int soc_bind_aux_dev(struct snd_soc_card *card, int num)
 	}
 
 	component->init = aux_dev->init;
-	component->auxiliary = 1;
 	list_add(&component->card_aux_list, &card->aux_comp_list);
 
 	return 0;
@@ -1789,14 +1788,13 @@  static int soc_bind_aux_dev(struct snd_soc_card *card, int num)
 
 static int soc_probe_aux_devices(struct snd_soc_card *card)
 {
-	struct snd_soc_component *comp, *tmp;
+	struct snd_soc_component *comp;
 	int order;
 	int ret;
 
 	for (order = SND_SOC_COMP_ORDER_FIRST; order <= SND_SOC_COMP_ORDER_LAST;
 		order++) {
-		list_for_each_entry_safe(comp, tmp, &card->aux_comp_list,
-					 card_aux_list) {
+		list_for_each_entry(comp, &card->aux_comp_list, card_aux_list) {
 			if (comp->driver->probe_order == order) {
 				ret = soc_probe_component(card,	comp);
 				if (ret < 0) {
@@ -1805,7 +1803,6 @@  static int soc_probe_aux_devices(struct snd_soc_card *card)
 						comp->name, ret);
 					return ret;
 				}
-				list_del(&comp->card_aux_list);
 			}
 		}
 	}
@@ -1821,14 +1818,12 @@  static void soc_remove_aux_devices(struct snd_soc_card *card)
 	for (order = SND_SOC_COMP_ORDER_FIRST; order <= SND_SOC_COMP_ORDER_LAST;
 		order++) {
 		list_for_each_entry_safe(comp, _comp,
-			&card->component_dev_list, card_list) {
-
-			if (!comp->auxiliary)
-				continue;
+			&card->aux_comp_list, card_aux_list) {
 
 			if (comp->driver->remove_order == order) {
 				soc_remove_component(comp);
-				comp->auxiliary = 0;
+				/* remove it from the card's aux_comp_list */
+				list_del(&comp->card_aux_list);
 			}
 		}
 	}