ASoC: soc-pcm.c: check fe condition at out of loop
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tue, 30 Aug 2022 03:17:19 +0000 (03:17 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 5 Sep 2022 12:09:07 +0000 (13:09 +0100)
Current dpcm_add_paths() is checking fe condition in loop (= A),
but fe condition (X) is not related to the loop (B).

(X) static int dpcm_add_paths(fe, stream, ...)
{
...
(B) for_each_dapm_widgets(list, i, widget) {
...
(A) if (!fe->dpcm[stream].runtime && !fe->fe_compr)
continue;
...
}
...
}

This patch checks fe condition at out of loop

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

index ce09caf8f8c892d4102583793729f9a4e69b9245..f8b62487babdbe0adc9c9fed3a99292089e0574d 100644 (file)
@@ -1458,6 +1458,10 @@ static int dpcm_add_paths(struct snd_soc_pcm_runtime *fe, int stream,
        struct snd_soc_dapm_widget *widget;
        int i, new = 0, err;
 
+       /* don't connect if FE is not running */
+       if (!fe->dpcm[stream].runtime && !fe->fe_compr)
+               return new;
+
        /* Create any new FE <--> BE connections */
        for_each_dapm_widgets(list, i, widget) {
 
@@ -1482,10 +1486,6 @@ static int dpcm_add_paths(struct snd_soc_pcm_runtime *fe, int stream,
                        continue;
                }
 
-               /* don't connect if FE is not running */
-               if (!fe->dpcm[stream].runtime && !fe->fe_compr)
-                       continue;
-
                /*
                 * Filter for systems with 'component_chaining' enabled.
                 * This helps to avoid unnecessary re-configuration of an