[PATCH 12/19] ASoC: soc-card: add probed bit field to snd_soc_card
Pierre-Louis Bossart
pierre-louis.bossart at linux.intel.com
Tue May 26 16:08:05 CEST 2020
On 5/25/20 8:18 PM, Kuninori Morimoto wrote:
>
> From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
>
> We have bit field to control snd_soc_card.
> Let's add probed field on it instead of local variable.
>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
> ---
> include/sound/soc.h | 1 +
> sound/soc/soc-core.c | 18 ++++++++----------
> 2 files changed, 9 insertions(+), 10 deletions(-)
>
> diff --git a/include/sound/soc.h b/include/sound/soc.h
> index 060c01c32547..74868436ac79 100644
> --- a/include/sound/soc.h
> +++ b/include/sound/soc.h
> @@ -1096,6 +1096,7 @@ struct snd_soc_card {
> unsigned int topology_shortname_created:1;
> unsigned int fully_routed:1;
> unsigned int disable_route_checks:1;
> + unsigned int probed:1;
>
> void *drvdata;
> };
> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
> index 02147acf6547..7cfb3ee6ff4f 100644
> --- a/sound/soc/soc-core.c
> +++ b/sound/soc/soc-core.c
> @@ -1723,8 +1723,7 @@ static void __soc_setup_card_name(char *name, int len,
> }
> }
>
> -static void soc_cleanup_card_resources(struct snd_soc_card *card,
> - int card_probed)
> +static void soc_cleanup_card_resources(struct snd_soc_card *card)
> {
> struct snd_soc_pcm_runtime *rtd, *n;
>
> @@ -1748,8 +1747,9 @@ static void soc_cleanup_card_resources(struct snd_soc_card *card,
> soc_cleanup_card_debugfs(card);
>
> /* remove the card */
> - if (card_probed && card->remove)
> + if (card->probed && card->remove)
> card->remove(card);
> + card->probed = 0;
>
> if (card->snd_card) {
> snd_card_free(card->snd_card);
> @@ -1760,12 +1760,10 @@ static void soc_cleanup_card_resources(struct snd_soc_card *card,
> static void snd_soc_unbind_card(struct snd_soc_card *card, bool unregister)
> {
> if (card->instantiated) {
> - int card_probed = 1;
> -
This looks like a change, now soc_cleanup_card_resources() is called
without setting the card_probed bitfield?
everywhere else I see a 1:1 mapping between variable and bitfield usage,
not here, is this intentional?
> card->instantiated = false;
> snd_soc_flush_all_delayed_work(card);
>
> - soc_cleanup_card_resources(card, card_probed);
> + soc_cleanup_card_resources(card);
> if (!unregister)
> list_add(&card->list, &unbind_card_list);
> } else {
> @@ -1779,7 +1777,7 @@ static int snd_soc_bind_card(struct snd_soc_card *card)
> struct snd_soc_pcm_runtime *rtd;
> struct snd_soc_component *component;
> struct snd_soc_dai_link *dai_link;
> - int ret, i, card_probed = 0;
> + int ret, i;
>
> mutex_lock(&client_mutex);
> mutex_lock_nested(&card->mutex, SND_SOC_CARD_CLASS_INIT);
> @@ -1831,7 +1829,7 @@ static int snd_soc_bind_card(struct snd_soc_card *card)
> ret = card->probe(card);
> if (ret < 0)
> goto probe_end;
> - card_probed = 1;
> + card->probed = 1;
> }
>
> /* probe all components used by DAI links on this card */
> @@ -1923,7 +1921,7 @@ static int snd_soc_bind_card(struct snd_soc_card *card)
> goto probe_end;
> }
> }
> - card_probed = 1;
> + card->probed = 1;
>
> snd_soc_dapm_new_widgets(card);
>
> @@ -1945,7 +1943,7 @@ static int snd_soc_bind_card(struct snd_soc_card *card)
>
> probe_end:
> if (ret < 0)
> - soc_cleanup_card_resources(card, card_probed);
> + soc_cleanup_card_resources(card);
>
> mutex_unlock(&card->mutex);
> mutex_unlock(&client_mutex);
>
More information about the Alsa-devel
mailing list