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 06/16] ASoC: soc-dai: add snd_soc_dai_prepare()
Date: 22 Jul 2019 10:33:45 +0900	[thread overview]
Message-ID: <87tvbehn46.wl-kuninori.morimoto.gx@renesas.com> (raw)
In-Reply-To: <8736iyj1yr.wl-kuninori.morimoto.gx@renesas.com>


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

Current ALSA SoC is directly using dai->driver->ops->xxx,
thus, it has deep nested bracket, and it makes code unreadable.
This patch adds new snd_soc_dai_prepare() and use it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/soc-dai.h |  2 ++
 sound/soc/soc-dai.c     | 11 +++++++++++
 sound/soc/soc-pcm.c     | 27 +++++++++++----------------
 3 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h
index 32545d4..c7dff6a 100644
--- a/include/sound/soc-dai.h
+++ b/include/sound/soc-dai.h
@@ -154,6 +154,8 @@ int snd_soc_dai_startup(struct snd_soc_dai *dai,
 			struct snd_pcm_substream *substream);
 void snd_soc_dai_shutdown(struct snd_soc_dai *dai,
 			  struct snd_pcm_substream *substream);
+int snd_soc_dai_prepare(struct snd_soc_dai *dai,
+			struct snd_pcm_substream *substream);
 
 struct snd_soc_dai_ops {
 	/*
diff --git a/sound/soc/soc-dai.c b/sound/soc/soc-dai.c
index 67ff6cc..cb81088 100644
--- a/sound/soc/soc-dai.c
+++ b/sound/soc/soc-dai.c
@@ -307,3 +307,14 @@ void snd_soc_dai_shutdown(struct snd_soc_dai *dai,
 	if (dai->driver->ops->shutdown)
 		dai->driver->ops->shutdown(substream, dai);
 }
+
+int snd_soc_dai_prepare(struct snd_soc_dai *dai,
+			struct snd_pcm_substream *substream)
+{
+	int ret = 0;
+
+	if (dai->driver->ops->prepare)
+		ret = dai->driver->ops->prepare(substream, dai);
+
+	return ret;
+}
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index ed5ae23..d7611af 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -814,27 +814,22 @@ static int soc_pcm_prepare(struct snd_pcm_substream *substream)
 	}
 
 	for_each_rtd_codec_dai(rtd, i, codec_dai) {
-		if (codec_dai->driver->ops->prepare) {
-			ret = codec_dai->driver->ops->prepare(substream,
-							      codec_dai);
-			if (ret < 0) {
-				dev_err(codec_dai->dev,
-					"ASoC: codec DAI prepare error: %d\n",
-					ret);
-				goto out;
-			}
-		}
-	}
-
-	if (cpu_dai->driver->ops->prepare) {
-		ret = cpu_dai->driver->ops->prepare(substream, cpu_dai);
+		ret = snd_soc_dai_prepare(codec_dai, substream);
 		if (ret < 0) {
-			dev_err(cpu_dai->dev,
-				"ASoC: cpu DAI prepare error: %d\n", ret);
+			dev_err(codec_dai->dev,
+				"ASoC: codec DAI prepare error: %d\n",
+				ret);
 			goto out;
 		}
 	}
 
+	ret = snd_soc_dai_prepare(cpu_dai, substream);
+	if (ret < 0) {
+		dev_err(cpu_dai->dev,
+			"ASoC: cpu DAI prepare error: %d\n", ret);
+		goto out;
+	}
+
 	/* cancel any delayed stream shutdown that is pending */
 	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
 	    rtd->pop_wait) {
-- 
2.7.4

  parent reply	other threads:[~2019-07-22  1:33 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-22  1:27 [PATCH 00/16] ASoC: add soc-dai.c Kuninori Morimoto
2019-07-22  1:32 ` [PATCH 01/16] " Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: add soc-dai.c" to the asoc tree Mark Brown
2019-07-22  1:33 ` [PATCH 02/16] ASoC: soc-dai: mv soc_dai_hw_params() to soc-dai Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: mv soc_dai_hw_params() to soc-dai" to the asoc tree Mark Brown
2019-07-22  1:33 ` [PATCH 03/16] ASoC: soc-dai: add snd_soc_dai_hw_free() Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_hw_free()" to the asoc tree Mark Brown
2019-07-22  1:33 ` [PATCH 04/16] ASoC: soc-dai: add snd_soc_dai_startup() Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_startup()" to the asoc tree Mark Brown
2019-07-22  1:33 ` [PATCH 05/16] ASoC: soc-dai: add snd_soc_dai_shutdown() Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_shutdown()" to the asoc tree Mark Brown
2019-07-22  1:33 ` Kuninori Morimoto [this message]
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_prepare()" " Mark Brown
2019-07-22  1:33 ` [PATCH 07/16] ASoC: soc-dai: add snd_soc_dai_trigger() Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_trigger()" to the asoc tree Mark Brown
2019-07-22  1:33 ` [PATCH 08/16] ASoC: soc-dai: add snd_soc_dai_bespoke_trigger() Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_bespoke_trigger()" to the asoc tree Mark Brown
2019-07-22  1:34 ` [PATCH 08/16] ASoC: soc-dai: add snd_soc_dai_bespoke_trigger() Kuninori Morimoto
2019-07-22  1:34 ` [PATCH 09/16] ASoC: soc-dai: add snd_soc_dai_delay() Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_delay()" to the asoc tree Mark Brown
2019-07-22  1:34 ` [PATCH 10/16] ASoC: soc-dai: add snd_soc_dai_suspend() Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_suspend()" to the asoc tree Mark Brown
2019-07-22  1:34 ` [PATCH 11/16] ASoC: soc-dai: add snd_soc_dai_resume() Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_resume()" to the asoc tree Mark Brown
2019-07-22  1:34 ` [PATCH 12/16] ASoC: soc-dai: add snd_soc_dai_probe() Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_probe()" to the asoc tree Mark Brown
2019-07-22  1:35 ` [PATCH 13/16] ASoC: soc-dai: add snd_soc_dai_remove() Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_remove()" to the asoc tree Mark Brown
2019-07-22  1:35 ` [PATCH 14/16] ASoC: soc-dai: add snd_soc_dai_compress_new() Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_compress_new()" to the asoc tree Mark Brown
2019-07-22  1:36 ` [PATCH 15/16] ASoC: soc-dai: move snd_soc_dai_stream_valid() to soc-dai.c Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: move snd_soc_dai_stream_valid() to soc-dai.c" to the asoc tree Mark Brown
2019-07-22  1:36 ` [PATCH 16/16] ASoC: soc-core: use existing snd_soc_dai_digital_mute() Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-core: use existing snd_soc_dai_digital_mute()" 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=87tvbehn46.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.