On Mon, 2020-06-01 at 10:36 +0900, Kuninori Morimoto wrote: > From: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > > 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@xxxxxxxxxxx> > --- > include/sound/soc-component.h | 3 +-- > sound/soc/soc-component.c | 28 +++++++++++++++++----------- > sound/soc/soc-pcm.c | 13 +++++-------- > 3 files changed, 23 insertions(+), 21 deletions(-) > > diff --git a/include/sound/soc-component.h b/include/sound/soc- > component.h > index cb0d34fa77c6..fc287e910240 100644 > --- a/include/sound/soc-component.h > +++ b/include/sound/soc-component.h > @@ -426,8 +426,6 @@ int snd_soc_component_open(struct > snd_soc_component *component, > struct snd_pcm_substream *substream); > int snd_soc_component_close(struct snd_soc_component *component, > struct snd_pcm_substream *substream); > -int snd_soc_component_prepare(struct snd_soc_component *component, > - struct snd_pcm_substream *substream); > int snd_soc_component_hw_params(struct snd_soc_component *component, > struct snd_pcm_substream *substream, > struct snd_pcm_hw_params *params); > @@ -460,5 +458,6 @@ int snd_soc_pcm_component_mmap(struct > snd_pcm_substream *substream, > struct vm_area_struct *vma); > int snd_soc_pcm_component_new(struct snd_soc_pcm_runtime *rtd); > void snd_soc_pcm_component_free(struct snd_soc_pcm_runtime *rtd); > +int snd_soc_pcm_component_prepare(struct snd_pcm_substream > *substream); > > #endif /* __SOC_COMPONENT_H */ > 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; > +} > diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c > index 276505fb9d50..e61e7a56d95e 100644 > --- a/sound/soc/soc-pcm.c > +++ b/sound/soc/soc-pcm.c > @@ -850,7 +850,6 @@ static void codec2codec_close_delayed_work(struct > snd_soc_pcm_runtime *rtd) > static int soc_pcm_prepare(struct snd_pcm_substream *substream) > { > struct snd_soc_pcm_runtime *rtd = substream->private_data; > - struct snd_soc_component *component; > struct snd_soc_dai *dai; > int i, ret = 0; > > @@ -860,13 +859,11 @@ static int soc_pcm_prepare(struct > snd_pcm_substream *substream) > if (ret < 0) > goto out; > > - for_each_rtd_components(rtd, i, component) { > - ret = snd_soc_component_prepare(component, substream); > - if (ret < 0) { > - dev_err(component->dev, > - "ASoC: platform prepare error: %d\n", > ret); > - goto out; > - } > + ret = snd_soc_pcm_component_prepare(substream); > + if (ret < 0) { > + dev_err(rtd->dev, > + "ASoC: platform prepare error: %d\n", ret); Morimoto-san, We should remove this. This will be a duplicate error message as snd_soc_pcm_component_prepare() would already print the error before returning. Thanks, Ranjani