ASoC: soc-pcm: move soc_pcm_hw_free() next to soc_pcm_hw_params()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tue, 29 Sep 2020 04:31:19 +0000 (13:31 +0900)
committerMark Brown <broonie@kernel.org>
Mon, 26 Oct 2020 16:44:14 +0000 (16:44 +0000)
This patch moves soc_pcm_hw_free() next to soc_pcm_hw_params().
This is prepare for soc_pcm_hw_params() cleanup

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

index dcab9527ba3d7ead6b179802d871cbb7da397940..697c9cb4a1276b5be4442784a7bc30ca3a06f026 100644 (file)
@@ -860,6 +860,49 @@ static void soc_pcm_codec_params_fixup(struct snd_pcm_hw_params *params,
        interval->max = channels;
 }
 
+/*
+ * Frees resources allocated by hw_params, can be called multiple times
+ */
+static int soc_pcm_hw_free(struct snd_pcm_substream *substream)
+{
+       struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
+       struct snd_soc_dai *dai;
+       int i;
+
+       mutex_lock_nested(&rtd->card->pcm_mutex, rtd->card->pcm_subclass);
+
+       /* clear the corresponding DAIs parameters when going to be inactive */
+       for_each_rtd_dais(rtd, i, dai) {
+               int active = snd_soc_dai_stream_active(dai, substream->stream);
+
+               if (snd_soc_dai_active(dai) == 1) {
+                       dai->rate = 0;
+                       dai->channels = 0;
+                       dai->sample_bits = 0;
+               }
+
+               if (active == 1)
+                       snd_soc_dai_digital_mute(dai, 1, substream->stream);
+       }
+
+       /* free any machine hw params */
+       snd_soc_link_hw_free(substream);
+
+       /* free any component resources */
+       snd_soc_pcm_component_hw_free(substream, NULL);
+
+       /* now free hw params for the DAIs  */
+       for_each_rtd_dais(rtd, i, dai) {
+               if (!snd_soc_dai_stream_valid(dai, substream->stream))
+                       continue;
+
+               snd_soc_dai_hw_free(dai, substream);
+       }
+
+       mutex_unlock(&rtd->card->pcm_mutex);
+       return 0;
+}
+
 /*
  * Called by ALSA when the hardware params are set by application. This
  * function can also be called multiple times and can allocate buffers
@@ -991,49 +1034,6 @@ codec_err:
        return ret;
 }
 
-/*
- * Frees resources allocated by hw_params, can be called multiple times
- */
-static int soc_pcm_hw_free(struct snd_pcm_substream *substream)
-{
-       struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
-       struct snd_soc_dai *dai;
-       int i;
-
-       mutex_lock_nested(&rtd->card->pcm_mutex, rtd->card->pcm_subclass);
-
-       /* clear the corresponding DAIs parameters when going to be inactive */
-       for_each_rtd_dais(rtd, i, dai) {
-               int active = snd_soc_dai_stream_active(dai, substream->stream);
-
-               if (snd_soc_dai_active(dai) == 1) {
-                       dai->rate = 0;
-                       dai->channels = 0;
-                       dai->sample_bits = 0;
-               }
-
-               if (active == 1)
-                       snd_soc_dai_digital_mute(dai, 1, substream->stream);
-       }
-
-       /* free any machine hw params */
-       snd_soc_link_hw_free(substream);
-
-       /* free any component resources */
-       snd_soc_pcm_component_hw_free(substream, NULL);
-
-       /* now free hw params for the DAIs  */
-       for_each_rtd_dais(rtd, i, dai) {
-               if (!snd_soc_dai_stream_valid(dai, substream->stream))
-                       continue;
-
-               snd_soc_dai_hw_free(dai, substream);
-       }
-
-       mutex_unlock(&rtd->card->pcm_mutex);
-       return 0;
-}
-
 static int soc_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
 {
        int ret = -EINVAL;