2023-04-11 11:14:01

by Srinivas Kandagatla

[permalink] [raw]
Subject: [PATCH] ASoC: soc-compress: set pcm nonatomic flag from dai_link

In compress offload case we never set nonatomic flag on a new pcm. This triggers
below configuration error with DPCM on Qualcomm setup where dai_links are marked
as nonatomic.

"FE is atomic but BE is nonatomic, invalid configuration"

Fix this by Updating the pcm nonatomic flag correcly from the respective dai_link.

CC: Mohammad Rafi Shaik <[email protected]>
Signed-off-by: Srinivas Kandagatla <[email protected]>
---
sound/soc/soc-compress.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index 554c329ec87f..a8d70274cab8 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -615,6 +615,7 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
return ret;
}

+ be_pcm->nonatomic = rtd->dai_link->nonatomic;
rtd->pcm = be_pcm;
rtd->fe_compr = 1;
if (rtd->dai_link->dpcm_playback)
--
2.21.0


2023-04-11 13:40:24

by Pierre-Louis Bossart

[permalink] [raw]
Subject: Re: [PATCH] ASoC: soc-compress: set pcm nonatomic flag from dai_link



On 4/11/23 06:08, Srinivas Kandagatla wrote:
> In compress offload case we never set nonatomic flag on a new pcm. This triggers
> below configuration error with DPCM on Qualcomm setup where dai_links are marked
> as nonatomic.
>
> "FE is atomic but BE is nonatomic, invalid configuration"
>
> Fix this by Updating the pcm nonatomic flag correcly from the respective dai_link.
>
> CC: Mohammad Rafi Shaik <[email protected]>
> Signed-off-by: Srinivas Kandagatla <[email protected]>
> ---
> sound/soc/soc-compress.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
> index 554c329ec87f..a8d70274cab8 100644
> --- a/sound/soc/soc-compress.c
> +++ b/sound/soc/soc-compress.c
> @@ -615,6 +615,7 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
> return ret;
> }
>
> + be_pcm->nonatomic = rtd->dai_link->nonatomic;
> rtd->pcm = be_pcm;
> rtd->fe_compr = 1;
> if (rtd->dai_link->dpcm_playback)

isn't this fixed already? Daniel Baluta sent a patch for this, already
applied by Mark:

https://lore.kernel.org/alsa-devel/[email protected]/

2023-04-11 13:42:11

by Srinivas Kandagatla

[permalink] [raw]
Subject: Re: [PATCH] ASoC: soc-compress: set pcm nonatomic flag from dai_link



On 11/04/2023 14:25, Pierre-Louis Bossart wrote:
>
>
> On 4/11/23 06:08, Srinivas Kandagatla wrote:
>> In compress offload case we never set nonatomic flag on a new pcm. This triggers
>> below configuration error with DPCM on Qualcomm setup where dai_links are marked
>> as nonatomic.
>>
>> "FE is atomic but BE is nonatomic, invalid configuration"
>>
>> Fix this by Updating the pcm nonatomic flag correcly from the respective dai_link.
>>
>> CC: Mohammad Rafi Shaik <[email protected]>
>> Signed-off-by: Srinivas Kandagatla <[email protected]>
>> ---
>> sound/soc/soc-compress.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
>> index 554c329ec87f..a8d70274cab8 100644
>> --- a/sound/soc/soc-compress.c
>> +++ b/sound/soc/soc-compress.c
>> @@ -615,6 +615,7 @@ int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
>> return ret;
>> }
>>
>> + be_pcm->nonatomic = rtd->dai_link->nonatomic;
>> rtd->pcm = be_pcm;
>> rtd->fe_compr = 1;
>> if (rtd->dai_link->dpcm_playback)
>
> isn't this fixed already? Daniel Baluta sent a patch for this, already
> applied by Mark:
>

Thanks for pointing this, Yes, It is fixed in sound-next.. my branch was
a week+ old so did not spot it :-)

--srini
> https://lore.kernel.org/alsa-devel/[email protected]/