Re: [PATCH] ASoC: soc-compress: Inherit atomicity from DAI link for Compress FE

From: Pierre-Louis Bossart
Date: Tue Mar 14 2023 - 12:15:13 EST




On 3/14/23 10:34, Daniel Baluta wrote:
> From: Daniel Baluta <daniel.baluta@xxxxxxx>
>
> After commit bbf7d3b1c4f40 ("ASoC: soc-pcm: align BE 'atomicity' with
> that of the FE") BE and FE atomicity must match.
>
> In the case of Compress PCM there is a mismatch in atomicity between FE
> and BE and we get errors like this:
>
> [ 36.434566] sai1-wm8960-hifi: dpcm_be_connect: FE is atomic but BE
> is nonatomic, invalid configuration

Not clear on the 'FE is atomic' in the case of a compressed stream,
which has to be handled with some sort of IPC, i.e. be nonatomic.

Also not sure why the FE is not set as nonatomic by the SOF parts?
If it's needed for PCM, why wouldn't it be needed for compressed data?

> [ 36.444278] PCM Deep Buffer: ASoC: can't connect SAI1.OUT
>
> In order to fix this we must inherit the atomicity from DAI link
> associated with current PCM Compress FE.
>
> Fixes: bbf7d3b1c4f4 ("ASoC: soc-pcm: align BE 'atomicity' with that of the FE")
> Signed-off-by: Daniel Baluta <daniel.baluta@xxxxxxx>
> ---
> sound/soc/soc-compress.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
> index e7aa6f360cab..d649b0cf4744 100644
> --- a/sound/soc/soc-compress.c
> +++ b/sound/soc/soc-compress.c
> @@ -622,6 +622,9 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
> return ret;
> }
>
> + /* inherit atomicity from DAI link */
> + be_pcm->nonatomic = rtd->dai_link->nonatomic;
> +
> rtd->pcm = be_pcm;
> rtd->fe_compr = 1;
> if (rtd->dai_link->dpcm_playback)