aboutsummaryrefslogtreecommitdiff
path: root/sound/soc/soc-compress.c
diff options
context:
space:
mode:
authorGravatar Daniel Baluta <daniel.baluta@nxp.com> 2023-03-24 14:40:19 +0200
committerGravatar Mark Brown <broonie@kernel.org> 2023-03-24 14:20:03 +0000
commit37b58becc1cee4d591024f2056d7ffa99c6089e0 (patch)
tree28aa6b326f63fb371047bd77fa6d50ffdbfc42ee /sound/soc/soc-compress.c
parentASoC: cs35l56: Fix an unsigned comparison which can never be negative (diff)
downloadlinux-37b58becc1cee4d591024f2056d7ffa99c6089e0.tar.gz
linux-37b58becc1cee4d591024f2056d7ffa99c6089e0.tar.bz2
linux-37b58becc1cee4d591024f2056d7ffa99c6089e0.zip
ASoC: soc-compress: Inherit atomicity from DAI link for Compress FE
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 [ 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@nxp.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20230324124019.30826-1-daniel.baluta@oss.nxp.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/soc-compress.c')
-rw-r--r--sound/soc/soc-compress.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c
index 554c329ec87f..6e74a6c48986 100644
--- a/sound/soc/soc-compress.c
+++ b/sound/soc/soc-compress.c
@@ -615,6 +615,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)