diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2020-06-04 10:06:58 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2020-06-15 19:21:22 +0200 |
commit | 4f39514f36980a4b20a754a5d51486a5999c8380 (patch) | |
tree | 12805c140f28a5fd21edfa8aede6cfc04418b84c /sound/soc/soc-component.c | |
parent | ASoC: soc-component: add soc_component_err() (diff) | |
download | linux-4f39514f36980a4b20a754a5d51486a5999c8380.tar.xz linux-4f39514f36980a4b20a754a5d51486a5999c8380.zip |
ASoC: soc-component: add snd_soc_pcm_component_prepare()
We have 2 type of component functions
snd_soc_component_xxx() is focusing to component itself,
snd_soc_pcm_component_xxx() is focusing to rtd related component.
Now we can update snd_soc_component_prepare() to
snd_soc_pcm_component_prepare(). This patch do it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Link: https://lore.kernel.org/r/87o8pzw8yl.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/soc-component.c')
-rw-r--r-- | sound/soc/soc-component.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c index 6d29c2de3b24..1bc155bc8e5e 100644 --- a/sound/soc/soc-component.c +++ b/sound/soc/soc-component.c @@ -275,17 +275,6 @@ int snd_soc_component_close(struct snd_soc_component *component, return soc_component_ret(component, ret); } -int snd_soc_component_prepare(struct snd_soc_component *component, - struct snd_pcm_substream *substream) -{ - int ret = 0; - - if (component->driver->prepare) - ret = component->driver->prepare(component, substream); - - return soc_component_ret(component, ret); -} - int snd_soc_component_hw_params(struct snd_soc_component *component, struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params) @@ -569,3 +558,20 @@ void snd_soc_pcm_component_free(struct snd_soc_pcm_runtime *rtd) if (component->driver->pcm_destruct) component->driver->pcm_destruct(component, rtd->pcm); } + +int snd_soc_pcm_component_prepare(struct snd_pcm_substream *substream) +{ + struct snd_soc_pcm_runtime *rtd = substream->private_data; + struct snd_soc_component *component; + int i, ret; + + for_each_rtd_components(rtd, i, component) { + if (component->driver->prepare) { + ret = component->driver->prepare(component, substream); + if (ret < 0) + return soc_component_ret(component, ret); + } + } + + return 0; +} |