ASoC: soc-dai: add snd_soc_dai_shutdown()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Mon, 22 Jul 2019 01:33:39 +0000 (10:33 +0900)
committerMark Brown <broonie@kernel.org>
Tue, 23 Jul 2019 17:14:17 +0000 (18:14 +0100)
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_shutdown() and use it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87v9vuhn4b.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/soc-dai.h
sound/soc/soc-dai.c
sound/soc/soc-dapm.c
sound/soc/soc-pcm.c

index 0d16c5bb20bb727bb21c04ff103bf20b2c15f970..32545d457b3d3a9aff2d1907b51c038755caee0e 100644 (file)
@@ -152,6 +152,8 @@ 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);
+void snd_soc_dai_shutdown(struct snd_soc_dai *dai,
+                         struct snd_pcm_substream *substream);
 
 struct snd_soc_dai_ops {
        /*
index 6e196636e42fa3b3926d4b226805aa3ad6a263ae..67ff6cc1fe022d059f7002d0d5e98bb98e79707a 100644 (file)
@@ -300,3 +300,10 @@ int snd_soc_dai_startup(struct snd_soc_dai *dai,
 
        return ret;
 }
+
+void snd_soc_dai_shutdown(struct snd_soc_dai *dai,
+                        struct snd_pcm_substream *substream)
+{
+       if (dai->driver->ops->shutdown)
+               dai->driver->ops->shutdown(substream, dai);
+}
index 71bfd049480ae913f2139914c2b77c2355d0a142..1d04612601ad7e404d47a98e25bbeff2227feab4 100644 (file)
@@ -3893,9 +3893,7 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
                        snd_soc_dai_hw_free(source, &substream);
 
                        source->active--;
-                       if (source->driver->ops->shutdown)
-                               source->driver->ops->shutdown(&substream,
-                                                             source);
+                       snd_soc_dai_shutdown(source, &substream);
                }
 
                substream.stream = SNDRV_PCM_STREAM_PLAYBACK;
@@ -3905,8 +3903,7 @@ static int snd_soc_dai_link_event(struct snd_soc_dapm_widget *w,
                        snd_soc_dai_hw_free(sink, &substream);
 
                        sink->active--;
-                       if (sink->driver->ops->shutdown)
-                               sink->driver->ops->shutdown(&substream, sink);
+                       snd_soc_dai_shutdown(sink, &substream);
                }
                break;
 
index 9c8713a3eef190039d05803bd5bf77675bac35a1..ed5ae23c7104d684c00aaabd74d2e6811aa0ffd9 100644 (file)
@@ -641,16 +641,13 @@ machine_err:
        i = rtd->num_codecs;
 
 codec_dai_err:
-       for_each_rtd_codec_dai_rollback(rtd, i, codec_dai) {
-               if (codec_dai->driver->ops->shutdown)
-                       codec_dai->driver->ops->shutdown(substream, codec_dai);
-       }
+       for_each_rtd_codec_dai_rollback(rtd, i, codec_dai)
+               snd_soc_dai_shutdown(codec_dai, substream);
 
 component_err:
        soc_pcm_components_close(substream, component);
 
-       if (cpu_dai->driver->ops->shutdown)
-               cpu_dai->driver->ops->shutdown(substream, cpu_dai);
+       snd_soc_dai_shutdown(cpu_dai, substream);
 out:
        mutex_unlock(&rtd->pcm_mutex);
 
@@ -728,13 +725,10 @@ static int soc_pcm_close(struct snd_pcm_substream *substream)
 
        snd_soc_dai_digital_mute(cpu_dai, 1, substream->stream);
 
-       if (cpu_dai->driver->ops->shutdown)
-               cpu_dai->driver->ops->shutdown(substream, cpu_dai);
+       snd_soc_dai_shutdown(cpu_dai, substream);
 
-       for_each_rtd_codec_dai(rtd, i, codec_dai) {
-               if (codec_dai->driver->ops->shutdown)
-                       codec_dai->driver->ops->shutdown(substream, codec_dai);
-       }
+       for_each_rtd_codec_dai(rtd, i, codec_dai)
+               snd_soc_dai_shutdown(codec_dai, substream);
 
        if (rtd->dai_link->ops->shutdown)
                rtd->dai_link->ops->shutdown(substream);