[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6d9d09aa-d83e-e811-1d43-34780ea05d4d@linux.intel.com>
Date: Tue, 14 Mar 2023 11:14:46 -0500
From: Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>
To: Daniel Baluta <daniel.baluta@....nxp.com>, broonie@...nel.org,
alsa-devel@...a-project.org
Cc: lgirdwood@...il.com, kai.vehmanen@...ux.intel.com,
ranjani.sridharan@...ux.intel.com, linux-kernel@...r.kernel.org,
daniel.baluta@...il.com, paul.olaru@....com
Subject: Re: [PATCH] ASoC: soc-compress: Inherit atomicity from DAI link for
Compress FE
On 3/14/23 10:34, Daniel Baluta wrote:
> From: Daniel Baluta <daniel.baluta@....com>
>
> 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@....com>
> ---
> 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)
Powered by blists - more mailing lists