[alsa-devel] [PATCH] ASoC: soc-pcm: BE dai needs prepare when pause release after resume

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Mon May 6 17:07:31 CEST 2019


On 5/5/19 1:37 AM, libin.yang at intel.com wrote:
> From: Libin Yang <libin.yang at intel.com>
> 
> If playback/capture is paused and system enters S3, after system returns
> from suspend, BE dai needs to call prepare() callback when playback/capture
> is released from pause.

Libin, this patch was discussed at length on GitHub [1] and the commit 
message does not convey any of the information we looked into. It's not 
very helpful to send such patches to a larger audience without 
explaining context and goals. I personally still have no idea of the 
state machine and if all solutions need this or if this is only needed 
in the case where the RESUME_INFO flag is not set.

[1] https://github.com/thesofproject/linux/pull/868


> 
> Signed-off-by: Libin Yang <libin.yang at intel.com>
> ---
>   sound/soc/soc-pcm.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
> index d2aa560..0888995 100644
> --- a/sound/soc/soc-pcm.c
> +++ b/sound/soc/soc-pcm.c
> @@ -2471,7 +2471,8 @@ int dpcm_be_dai_prepare(struct snd_soc_pcm_runtime *fe, int stream)
>   
>   		if ((be->dpcm[stream].state != SND_SOC_DPCM_STATE_HW_PARAMS) &&
>   		    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_STOP) &&
> -		    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_SUSPEND))
> +		    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_SUSPEND) &&
> +		    (be->dpcm[stream].state != SND_SOC_DPCM_STATE_PAUSED))
>   			continue;
>   
>   		dev_dbg(be->dev, "ASoC: prepare BE %s\n",
> 



More information about the Alsa-devel mailing list