[PATCH 5/7] ASoC: soc-link: add snd_soc_link_compr_startup()
Ranjani Sridharan
ranjani.sridharan at linux.intel.com
Tue May 19 03:47:56 CEST 2020
On Tue, 2020-05-19 at 10:02 +0900, Kuninori Morimoto wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
>
> dai_link related function should be implemented at soc-link.c.
> This patch adds snd_soc_link_compr_startup().
>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
> ---
> include/sound/soc-link.h | 3 +++
> sound/soc/soc-compress.c | 23 ++++++-----------------
> sound/soc/soc-link.c | 13 +++++++++++++
> 3 files changed, 22 insertions(+), 17 deletions(-)
>
> diff --git a/include/sound/soc-link.h b/include/sound/soc-link.h
> index aae72f668de6..c152576cbd87 100644
> --- a/include/sound/soc-link.h
> +++ b/include/sound/soc-link.h
> @@ -20,4 +20,7 @@ int snd_soc_link_hw_params(struct snd_pcm_substream
> *substream,
> void snd_soc_link_hw_free(struct snd_pcm_substream *substream);
> int snd_soc_link_trigger(struct snd_pcm_substream *substream, int
> cmd);
>
> +int snd_soc_link_compr_startup(struct snd_soc_pcm_runtime *rtd,
> + struct snd_compr_stream *cstream);
> +
> #endif /* __SOC_LINK_H */
> diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
> index 62ece729e425..35b0af86325a 100644
> --- a/sound/soc/soc-compress.c
> +++ b/sound/soc/soc-compress.c
> @@ -95,15 +95,9 @@ static int soc_compr_open(struct snd_compr_stream
> *cstream)
> if (ret < 0)
> goto machine_err;
>
> - if (rtd->dai_link->compr_ops && rtd->dai_link->compr_ops-
> >startup) {
> - ret = rtd->dai_link->compr_ops->startup(cstream);
> - if (ret < 0) {
> - dev_err(rtd->dev,
> - "Compress ASoC: %s startup failed:
> %d\n",
> - rtd->dai_link->name, ret);
> - goto machine_err;
> - }
> - }
> + ret = snd_soc_link_compr_startup(rtd, cstream);
> + if (ret < 0)
> + goto machine_err;
>
> snd_soc_runtime_activate(rtd, cstream->direction);
>
> @@ -179,14 +173,9 @@ static int soc_compr_open_fe(struct
> snd_compr_stream *cstream)
> if (ret < 0)
> goto open_err;
>
> - if (fe->dai_link->compr_ops && fe->dai_link->compr_ops-
> >startup) {
> - ret = fe->dai_link->compr_ops->startup(cstream);
> - if (ret < 0) {
> - pr_err("Compress ASoC: %s startup failed:
> %d\n",
> - fe->dai_link->name, ret);
> - goto machine_err;
> - }
> - }
> + ret = snd_soc_link_compr_startup(fe, cstream);
> + if (ret < 0)
> + goto machine_err;
>
> dpcm_clear_pending_state(fe, stream);
> dpcm_path_put(&list);
> diff --git a/sound/soc/soc-link.c b/sound/soc/soc-link.c
> index a735b3ba2385..dddc4a35a0ac 100644
> --- a/sound/soc/soc-link.c
> +++ b/sound/soc/soc-link.c
> @@ -112,3 +112,16 @@ int snd_soc_link_trigger(struct
> snd_pcm_substream *substream, int cmd)
>
> return soc_link_ret(rtd, ret);
> }
> +
> +int snd_soc_link_compr_startup(struct snd_soc_pcm_runtime *rtd,
> + struct snd_compr_stream *cstream)
Can we do the same think as for pcm substream and remove the rtd param?
Thanks,
Ranjani
More information about the Alsa-devel
mailing list