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 v2 14/19] ASoC: soc-card: add snd_soc_card_late_probe()
Date: 28 May 2020 10:49:20 +0900	[thread overview]
Message-ID: <87v9kgzv4w.wl-kuninori.morimoto.gx@renesas.com> (raw)
In-Reply-To: <87eer425lw.wl-kuninori.morimoto.gx@renesas.com>


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

Card related function should be implemented at soc-card now.
This patch adds it.

card has "card->probe" and "card->late_probe" callbacks,
and "late_probe" callback is called after "probe".
This means, we can set "card->probed" flag afer "late_probe"
for all cases.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-card.h |  1 +
 sound/soc/soc-card.c     | 24 ++++++++++++++++++++++++
 sound/soc/soc-core.c     | 12 +++---------
 3 files changed, 28 insertions(+), 9 deletions(-)

diff --git a/include/sound/soc-card.h b/include/sound/soc-card.h
index 191285a0ce19..521dc05e4e9f 100644
--- a/include/sound/soc-card.h
+++ b/include/sound/soc-card.h
@@ -25,6 +25,7 @@ int snd_soc_card_resume_pre(struct snd_soc_card *card);
 int snd_soc_card_resume_post(struct snd_soc_card *card);
 
 int snd_soc_card_probe(struct snd_soc_card *card);
+int snd_soc_card_late_probe(struct snd_soc_card *card);
 
 /* device driver data */
 static inline void snd_soc_card_set_drvdata(struct snd_soc_card *card,
diff --git a/sound/soc/soc-card.c b/sound/soc/soc-card.c
index ff3bf379f166..317771d87e3f 100644
--- a/sound/soc/soc-card.c
+++ b/sound/soc/soc-card.c
@@ -142,3 +142,27 @@ int snd_soc_card_probe(struct snd_soc_card *card)
 
 	return 0;
 }
+
+int snd_soc_card_late_probe(struct snd_soc_card *card)
+{
+	if (card->late_probe) {
+		int ret = card->late_probe(card);
+
+		if (ret < 0)
+			return soc_card_ret(card, ret);
+	}
+
+	/*
+	 * It has "card->probe" and "card->late_probe" callbacks,
+	 * and "late_probe" callback is called after "probe".
+	 * This means, we can set "card->probed" flag afer "late_probe"
+	 * for all cases.
+	 *
+	 * see
+	 *	snd_soc_bind_card()
+	 *	snd_soc_card_probe()
+	 */
+	card->probed = 1;
+
+	return 0;
+}
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 13a7d5158534..42e8c11a0b26 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1910,15 +1910,9 @@ static int snd_soc_bind_card(struct snd_soc_card *card)
 		}
 	}
 
-	if (card->late_probe) {
-		ret = card->late_probe(card);
-		if (ret < 0) {
-			dev_err(card->dev, "ASoC: %s late_probe() failed: %d\n",
-				card->name, ret);
-			goto probe_end;
-		}
-	}
-	card->probed = 1;
+	ret = snd_soc_card_late_probe(card);
+	if (ret < 0)
+		goto probe_end;
 
 	snd_soc_dapm_new_widgets(card);
 
-- 
2.17.1


  parent reply	other threads:[~2020-05-28  1:55 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-28  1:47 [PATCH v2 00/19] ASoC: add soc-card Kuninori Morimoto
2020-05-28  1:47 ` [PATCH v2 01/19] ASoC: soc.h: convert bool to bit field for snd_soc_card Kuninori Morimoto
2020-05-28  1:47 ` [PATCH v2 02/19] ASoC: add soc-card.c Kuninori Morimoto
2020-05-28  1:47 ` [PATCH v2 03/19] ASoC: soc-card: move snd_soc_card_get_kcontrol() to soc-card Kuninori Morimoto
2020-05-28  1:48 ` [PATCH v2 04/19] ASoC: soc-card: move snd_soc_card_jack_new() " Kuninori Morimoto
2020-05-28  1:48 ` [PATCH v2 05/19] ASoC: soc-card: move snd_soc_card_set/get_drvdata() " Kuninori Morimoto
2020-05-28  1:48 ` [PATCH v2 06/19] ASoC: soc-card: move snd_soc_card_get_codec_dai() " Kuninori Morimoto
2020-05-28  1:48 ` [PATCH v2 07/19] ASoC: soc-card: move snd_soc_card_subclass " Kuninori Morimoto
2020-05-28  1:48 ` [PATCH v2 08/19] ASoC: soc-card: add snd_soc_card_suspend_pre() Kuninori Morimoto
2020-05-28  1:48 ` [PATCH v2 09/19] ASoC: soc-card: add snd_soc_card_suspend_post() Kuninori Morimoto
2020-05-28  1:48 ` [PATCH v2 10/19] ASoC: soc-card: add snd_soc_card_resume_pre() Kuninori Morimoto
2020-05-28  1:49 ` [PATCH v2 11/19] ASoC: soc-card: add snd_soc_card_resume_post() Kuninori Morimoto
2020-05-28  1:49 ` [PATCH v2 13/19] ASoC: soc-card: add snd_soc_card_probe() Kuninori Morimoto
2020-05-28  1:49 ` Kuninori Morimoto [this message]
2020-05-28  1:49 ` [PATCH v2 15/19] ASoC: soc-card: add snd_soc_card_remove() Kuninori Morimoto
2020-05-28  1:49 ` [PATCH v2 16/19] ASoC: soc-card: add snd_soc_card_set_bias_level() Kuninori Morimoto
2020-05-28  1:50 ` [PATCH v2 12/19] ASoC: soc-card: add probed bit field to snd_soc_card Kuninori Morimoto
2020-05-28  1:50 ` [PATCH v2 17/19] ASoC: soc-card: add snd_soc_card_set_bias_level_post() Kuninori Morimoto
2020-05-28  1:50 ` [PATCH v2 18/19] ASoC: soc-card: add snd_soc_card_add_dai_link() Kuninori Morimoto
2020-05-28  1:50 ` [PATCH v2 19/19] ASoC: soc-card: add snd_soc_card_remove_dai_link() Kuninori Morimoto
2020-05-29 23:17 ` [PATCH v2 00/19] ASoC: add soc-card Ranjani Sridharan
2020-05-30  1:18 ` 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=87v9kgzv4w.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.