ASoC: soc-pcm: add dpcm_set_be_update_state()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Fri, 11 Dec 2020 05:55:22 +0000 (14:55 +0900)
committerMark Brown <broonie@kernel.org>
Wed, 13 Jan 2021 11:33:10 +0000 (11:33 +0000)
soc-pcm has dpcm_set_fe_update_state() to update FE's runtime_update
(except dpcm_fe_dai_do_trigger() which needs to update it without it).
OTOH, it doesn't have BE's update function.

O: dpcm_set_fe_update_state()
X: dpcm_set_be_update_state()

This patch add BE's dpcm_set_fe_update_state()

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

index 1cc8d0b6ec3d3f8338ab4f237aa0a9697968cab7..54b460f083730a1f8ab11cb6c38bbaa2d222199a 100644 (file)
@@ -225,6 +225,12 @@ static void dpcm_set_fe_update_state(struct snd_soc_pcm_runtime *fe,
        snd_pcm_stream_unlock_irq(substream);
 }
 
+static void dpcm_set_be_update_state(struct snd_soc_pcm_runtime *be,
+                                    int stream, enum snd_soc_dpcm_update state)
+{
+       be->dpcm[stream].runtime_update = state;
+}
+
 /**
  * snd_soc_runtime_action() - Increment/Decrement active count for
  * PCM runtime components
@@ -1357,7 +1363,7 @@ static int dpcm_prune_paths(struct snd_soc_pcm_runtime *fe, int stream,
                        stream ? "capture" : "playback",
                        dpcm->be->dai_link->name, fe->dai_link->name);
                dpcm->state = SND_SOC_DPCM_LINK_STATE_FREE;
-               dpcm->be->dpcm[stream].runtime_update = SND_SOC_DPCM_UPDATE_BE;
+               dpcm_set_be_update_state(dpcm->be, stream, SND_SOC_DPCM_UPDATE_BE);
                prune++;
        }
 
@@ -1412,7 +1418,7 @@ static int dpcm_add_paths(struct snd_soc_pcm_runtime *fe, int stream,
                        continue;
 
                /* new */
-               be->dpcm[stream].runtime_update = SND_SOC_DPCM_UPDATE_BE;
+               dpcm_set_be_update_state(be, stream, SND_SOC_DPCM_UPDATE_BE);
                new++;
        }
 
@@ -1440,8 +1446,7 @@ void dpcm_clear_pending_state(struct snd_soc_pcm_runtime *fe, int stream)
 
        spin_lock_irqsave(&fe->card->dpcm_lock, flags);
        for_each_dpcm_be(fe, stream, dpcm)
-               dpcm->be->dpcm[stream].runtime_update =
-                                               SND_SOC_DPCM_UPDATE_NO;
+               dpcm_set_be_update_state(dpcm->be, stream, SND_SOC_DPCM_UPDATE_NO);
        spin_unlock_irqrestore(&fe->card->dpcm_lock, flags);
 }