ASoC: soc-link: add snd_soc_link_compr_set_params()
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Mon, 25 May 2020 00:57:50 +0000 (09:57 +0900)
committerMark Brown <broonie@kernel.org>
Mon, 25 May 2020 13:22:14 +0000 (14:22 +0100)
dai_link related function should be implemented at soc-link.c.
This patch adds snd_soc_link_compr_set_params().

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/87sgfo3k6q.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/soc-link.h
sound/soc/soc-compress.c
sound/soc/soc-link.c

index 9ada62f8186fa3b219ba1793a981382abe66e17c..3dd6e33e94ecd350b61b5dbc65eeb18711057bf3 100644 (file)
@@ -22,5 +22,6 @@ int snd_soc_link_trigger(struct snd_pcm_substream *substream, int cmd);
 
 int snd_soc_link_compr_startup(struct snd_compr_stream *cstream);
 void snd_soc_link_compr_shutdown(struct snd_compr_stream *cstream);
+int snd_soc_link_compr_set_params(struct snd_compr_stream *cstream);
 
 #endif /* __SOC_LINK_H */
index 327bec05295440adc7a80ec22041d21eaadc462b..4984b6a2c3708789b0646bf3f6cd77b270ced1b7 100644 (file)
@@ -439,11 +439,9 @@ static int soc_compr_set_params(struct snd_compr_stream *cstream,
        if (ret < 0)
                goto err;
 
-       if (rtd->dai_link->compr_ops && rtd->dai_link->compr_ops->set_params) {
-               ret = rtd->dai_link->compr_ops->set_params(cstream);
-               if (ret < 0)
-                       goto err;
-       }
+       ret = snd_soc_link_compr_set_params(cstream);
+       if (ret < 0)
+               goto err;
 
        if (cstream->direction == SND_COMPRESS_PLAYBACK)
                snd_soc_dapm_stream_event(rtd, SNDRV_PCM_STREAM_PLAYBACK,
@@ -507,11 +505,9 @@ static int soc_compr_set_params_fe(struct snd_compr_stream *cstream,
        if (ret < 0)
                goto out;
 
-       if (fe->dai_link->compr_ops && fe->dai_link->compr_ops->set_params) {
-               ret = fe->dai_link->compr_ops->set_params(cstream);
-               if (ret < 0)
-                       goto out;
-       }
+       ret = snd_soc_link_compr_set_params(cstream);
+       if (ret < 0)
+               goto out;
 
        dpcm_dapm_stream_event(fe, stream, SND_SOC_DAPM_STREAM_START);
        fe->dpcm[stream].state = SND_SOC_DPCM_STATE_PREPARE;
index 2cfe7f88b80952c79e850901b11ebcbcd734bb50..248e1be4e1ebfeec0b224fbbb08d6c0cae56ec32 100644 (file)
@@ -136,3 +136,16 @@ void snd_soc_link_compr_shutdown(struct snd_compr_stream *cstream)
                rtd->dai_link->compr_ops->shutdown(cstream);
 }
 EXPORT_SYMBOL_GPL(snd_soc_link_compr_shutdown);
+
+int snd_soc_link_compr_set_params(struct snd_compr_stream *cstream)
+{
+       struct snd_soc_pcm_runtime *rtd = cstream->private_data;
+       int ret = 0;
+
+       if (rtd->dai_link->compr_ops &&
+           rtd->dai_link->compr_ops->set_params)
+               ret = rtd->dai_link->compr_ops->set_params(cstream);
+
+       return soc_link_ret(rtd, ret);
+}
+EXPORT_SYMBOL_GPL(snd_soc_link_compr_set_params);