On Thu, 2020-04-23 at 08:15 +0900, Kuninori Morimoto wrote: > From: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > > dai related function should be implemented at soc-dai.c. > This patch adds snd_soc_dai_compr_shutdown(). > > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > --- > include/sound/soc-dai.h | 2 ++ > sound/soc/soc-compress.c | 12 ++++-------- > sound/soc/soc-dai.c | 9 +++++++++ > 3 files changed, 15 insertions(+), 8 deletions(-) > > diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h > index deb99b1469b4..abf4ad25ce68 100644 > --- a/include/sound/soc-dai.h > +++ b/include/sound/soc-dai.h > @@ -172,6 +172,8 @@ int snd_soc_pcm_dai_bespoke_trigger(struct > snd_pcm_substream *substream, > > int snd_soc_dai_compr_startup(struct snd_soc_dai *dai, > struct snd_compr_stream *cstream); > +void snd_soc_dai_compr_shutdown(struct snd_soc_dai *dai, > + struct snd_compr_stream *cstream); > > struct snd_soc_dai_ops { > /* > diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c > index 4065e7b4138d..945d1d15e1d2 100644 > --- a/sound/soc/soc-compress.c > +++ b/sound/soc/soc-compress.c > @@ -114,8 +114,7 @@ static int soc_compr_open(struct snd_compr_stream > *cstream) > machine_err: > soc_compr_components_free(cstream, component); > > - if (cpu_dai->driver->cops && cpu_dai->driver->cops->shutdown) > - cpu_dai->driver->cops->shutdown(cstream, cpu_dai); > + snd_soc_dai_compr_shutdown(cpu_dai, cstream); > out: > mutex_unlock(&rtd->card->pcm_mutex); > pm_err: > @@ -204,8 +203,7 @@ static int soc_compr_open_fe(struct > snd_compr_stream *cstream) > machine_err: > soc_compr_components_free(cstream, component); > open_err: > - if (cpu_dai->driver->cops && cpu_dai->driver->cops->shutdown) > - cpu_dai->driver->cops->shutdown(cstream, cpu_dai); > + snd_soc_dai_compr_shutdown(cpu_dai, cstream); > out: > dpcm_path_put(&list); > be_err: > @@ -244,8 +242,7 @@ static int soc_compr_free(struct snd_compr_stream > *cstream) > > soc_compr_components_free(cstream, NULL); > > - if (cpu_dai->driver->cops && cpu_dai->driver->cops->shutdown) > - cpu_dai->driver->cops->shutdown(cstream, cpu_dai); > + snd_soc_dai_compr_shutdown(cpu_dai, cstream); > > snd_soc_dapm_stream_stop(rtd, stream); > > @@ -301,8 +298,7 @@ static int soc_compr_free_fe(struct > snd_compr_stream *cstream) > > soc_compr_components_free(cstream, NULL); > > - if (cpu_dai->driver->cops && cpu_dai->driver->cops->shutdown) > - cpu_dai->driver->cops->shutdown(cstream, cpu_dai); > + snd_soc_dai_compr_shutdown(cpu_dai, cstream); > > mutex_unlock(&fe->card->mutex); > return 0; > diff --git a/sound/soc/soc-dai.c b/sound/soc/soc-dai.c > index 5c88f80b781d..d5cb8b0853a7 100644 > --- a/sound/soc/soc-dai.c > +++ b/sound/soc/soc-dai.c > @@ -517,3 +517,12 @@ int snd_soc_dai_compr_startup(struct snd_soc_dai > *dai, > return soc_dai_ret(dai, ret); > } > EXPORT_SYMBOL_GPL(snd_soc_dai_compr_startup); > + > +void snd_soc_dai_compr_shutdown(struct snd_soc_dai *dai, > + struct snd_compr_stream *cstream) > +{ > + if (dai->driver->cops && > + dai->driver->cops->shutdown) > + dai->driver->cops->shutdown(cstream, dai); I see the original code doesnt check the return value. But I think we should here, no? Thanks, Ranjani