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 04/16] ASoC: soc-dai: add snd_soc_dai_startup()
Date: 22 Jul 2019 10:33:32 +0900	[thread overview]
Message-ID: <87wogahn4i.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_startup() 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-dapm.c    | 28 ++++++++++------------------
 sound/soc/soc-pcm.c     | 27 +++++++++++----------------
 4 files changed, 34 insertions(+), 34 deletions(-)

diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h
index 5222b6a..0d16c5b 100644
--- a/include/sound/soc-dai.h
+++ b/include/sound/soc-dai.h
@@ -150,6 +150,8 @@ int snd_soc_dai_hw_params(struct snd_soc_dai *dai,
 			  struct snd_pcm_hw_params *params);
 void snd_soc_dai_hw_free(struct snd_soc_dai *dai,
 			 struct snd_pcm_substream *substream);
+int snd_soc_dai_startup(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 39a685e..6e19663 100644
--- a/sound/soc/soc-dai.c
+++ b/sound/soc/soc-dai.c
@@ -289,3 +289,14 @@ void snd_soc_dai_hw_free(struct snd_soc_dai *dai,
 	if (dai->driver->ops->hw_free)
 		dai->driver->ops->hw_free(substream, dai);
 }
+
+int snd_soc_dai_startup(struct snd_soc_dai *dai,
+			struct snd_pcm_substream *substream)
+{
+	int ret = 0;
+
+	if (dai->driver->ops->startup)
+		ret = dai->driver->ops->startup(substream, dai);
+
+	return ret;
+}
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 0783b05..71bfd04 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -3828,15 +3828,11 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
 		snd_soc_dapm_widget_for_each_source_path(w, path) {
 			source = path->source->priv;
 
-			if (source->driver->ops->startup) {
-				ret = source->driver->ops->startup(&substream,
-								   source);
-				if (ret < 0) {
-					dev_err(source->dev,
-						"ASoC: startup() failed: %d\n",
-						ret);
-					goto out;
-				}
+			ret = snd_soc_dai_startup(source, &substream);
+			if (ret < 0) {
+				dev_err(source->dev,
+					"ASoC: startup() failed: %d\n", ret);
+				goto out;
 			}
 			source->active++;
 			ret = snd_soc_dai_hw_params(source, &substream, params);
@@ -3850,15 +3846,11 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
 		snd_soc_dapm_widget_for_each_sink_path(w, path) {
 			sink = path->sink->priv;
 
-			if (sink->driver->ops->startup) {
-				ret = sink->driver->ops->startup(&substream,
-								 sink);
-				if (ret < 0) {
-					dev_err(sink->dev,
-						"ASoC: startup() failed: %d\n",
-						ret);
-					goto out;
-				}
+			ret = snd_soc_dai_startup(sink, &substream);
+			if (ret < 0) {
+				dev_err(sink->dev,
+					"ASoC: startup() failed: %d\n", ret);
+				goto out;
 			}
 			sink->active++;
 			ret = snd_soc_dai_hw_params(sink, &substream, params);
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 58fc4e9..9c8713a 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -535,13 +535,11 @@ static int soc_pcm_open(struct snd_pcm_substream *substream)
 	mutex_lock_nested(&rtd->pcm_mutex, rtd->pcm_subclass);
 
 	/* startup the audio subsystem */
-	if (cpu_dai->driver->ops->startup) {
-		ret = cpu_dai->driver->ops->startup(substream, cpu_dai);
-		if (ret < 0) {
-			dev_err(cpu_dai->dev, "ASoC: can't open interface"
-				" %s: %d\n", cpu_dai->name, ret);
-			goto out;
-		}
+	ret = snd_soc_dai_startup(cpu_dai, substream);
+	if (ret < 0) {
+		dev_err(cpu_dai->dev, "ASoC: can't open interface %s: %d\n",
+			cpu_dai->name, ret);
+		goto out;
 	}
 
 	ret = soc_pcm_components_open(substream, &component);
@@ -549,15 +547,12 @@ static int soc_pcm_open(struct snd_pcm_substream *substream)
 		goto component_err;
 
 	for_each_rtd_codec_dai(rtd, i, codec_dai) {
-		if (codec_dai->driver->ops->startup) {
-			ret = codec_dai->driver->ops->startup(substream,
-							      codec_dai);
-			if (ret < 0) {
-				dev_err(codec_dai->dev,
-					"ASoC: can't open codec %s: %d\n",
-					codec_dai->name, ret);
-				goto codec_dai_err;
-			}
+		ret = snd_soc_dai_startup(codec_dai, substream);
+		if (ret < 0) {
+			dev_err(codec_dai->dev,
+				"ASoC: can't open codec %s: %d\n",
+				codec_dai->name, ret);
+			goto codec_dai_err;
 		}
 
 		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-- 
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 ` Kuninori Morimoto [this message]
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_startup()" " 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 ` [PATCH 06/16] ASoC: soc-dai: add snd_soc_dai_prepare() Kuninori Morimoto
2019-07-23 17:18   ` Applied "ASoC: soc-dai: add snd_soc_dai_prepare()" to the asoc tree 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=87wogahn4i.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.