[PATCH 05/17] ASoC: soc-dai: add snd_soc_pcm_dai_trigger()
Ranjani Sridharan
ranjani.sridharan at linux.intel.com
Thu Apr 23 03:16:32 CEST 2020
On Thu, 2020-04-23 at 08:14 +0900, Kuninori Morimoto wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
>
> We have 2 type of component functions
> snd_soc_dai_xxx() is focusing to dai itself,
> snd_soc_pcm_dai_xxx() is focusing to rtd related dai.
>
> Now we can update snd_soc_dai_trigger() to
> snd_soc_pcm_dai_trigger(). This patch do it.
>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
> ---
> include/sound/soc-dai.h | 3 +--
> sound/soc/soc-dai.c | 32 +++++++++++++++++++-------------
> sound/soc/soc-pcm.c | 18 ++++++------------
> 3 files changed, 26 insertions(+), 27 deletions(-)
>
> diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h
> index 1b25318b6325..3da850b4aefe 100644
> --- a/include/sound/soc-dai.h
> +++ b/include/sound/soc-dai.h
> @@ -154,8 +154,6 @@ 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);
> -int snd_soc_dai_trigger(struct snd_soc_dai *dai,
> - struct snd_pcm_substream *substream, int cmd);
> int snd_soc_dai_bespoke_trigger(struct snd_soc_dai *dai,
> struct snd_pcm_substream *substream, int cmd);
> snd_pcm_sframes_t snd_soc_dai_delay(struct snd_soc_dai *dai,
> @@ -170,6 +168,7 @@ bool snd_soc_dai_stream_valid(struct snd_soc_dai
> *dai, int stream);
>
> int snd_soc_pcm_dai_new(struct snd_soc_pcm_runtime *rtd);
> int snd_soc_pcm_dai_prepare(struct snd_pcm_substream *substream);
> +int snd_soc_pcm_dai_trigger(struct snd_pcm_substream *substream, int
> cmd);
>
> struct snd_soc_dai_ops {
> /*
> diff --git a/sound/soc/soc-dai.c b/sound/soc/soc-dai.c
> index 1a9cfdcfc736..29587d7e75ca 100644
> --- a/sound/soc/soc-dai.c
> +++ b/sound/soc/soc-dai.c
> @@ -354,19 +354,6 @@ void snd_soc_dai_shutdown(struct snd_soc_dai
> *dai,
> dai->driver->ops->shutdown(substream, dai);
> }
>
> -int snd_soc_dai_trigger(struct snd_soc_dai *dai,
> - struct snd_pcm_substream *substream,
> - int cmd)
> -{
> - int ret = 0;
> -
> - if (dai->driver->ops &&
> - dai->driver->ops->trigger)
> - ret = dai->driver->ops->trigger(substream, cmd, dai);
> -
> - return ret;
> -}
> -
> int snd_soc_dai_bespoke_trigger(struct snd_soc_dai *dai,
> struct snd_pcm_substream *substream,
> int cmd)
> @@ -467,3 +454,22 @@ int snd_soc_pcm_dai_prepare(struct
> snd_pcm_substream *substream)
>
> return 0;
> }
> +
> +int snd_soc_pcm_dai_trigger(struct snd_pcm_substream *substream,
> + int cmd)
> +{
> + struct snd_soc_pcm_runtime *rtd = substream->private_data;
> + struct snd_soc_dai *dai;
> + int i, ret;
> +
> + for_each_rtd_dais(rtd, i, dai) {
> + if (dai->driver->ops &&
> + dai->driver->ops->trigger) {
> + ret = dai->driver->ops->trigger(substream, cmd,
> dai);
> + if (ret < 0)
> + return soc_dai_ret(dai, ret);
> + }
> + }
> +
> + return 0;
> +}
> diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
> index f7b3dca1d152..bc55a249aa61 100644
> --- a/sound/soc/soc-pcm.c
> +++ b/sound/soc/soc-pcm.c
> @@ -1192,7 +1192,6 @@ static int soc_pcm_trigger_start(struct
> snd_pcm_substream *substream, int cmd)
> {
> struct snd_soc_pcm_runtime *rtd = substream->private_data;
> struct snd_soc_component *component;
> - struct snd_soc_dai *dai;
> int i, ret;
>
> ret = soc_rtd_trigger(rtd, substream, cmd);
> @@ -1205,11 +1204,9 @@ static int soc_pcm_trigger_start(struct
> snd_pcm_substream *substream, int cmd)
> return ret;
> }
>
> - for_each_rtd_dais(rtd, i, dai) {
> - ret = snd_soc_dai_trigger(dai, substream, cmd);
> - if (ret < 0)
> - return ret;
> - }
> + ret = snd_soc_pcm_dai_trigger(substream, cmd);
> + if (ret < 0)
> + return ret;
>
> return 0;
Maybe just "return snd_soc_pcm_dai_trigger(substream, cmd);" here?
Thanks,
Ranjani
More information about the Alsa-devel
mailing list