[PATCH 10/17] ASoC: soc-dai: add snd_soc_dai_compr_shutdown()

Ranjani Sridharan ranjani.sridharan at linux.intel.com
Thu Apr 23 03:31:13 CEST 2020


On Thu, 2020-04-23 at 08:15 +0900, Kuninori Morimoto wrote:
> From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
> 
> 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 at renesas.com>
> ---
>  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



More information about the Alsa-devel mailing list