diff options
author | Daniel Baluta <daniel.baluta@nxp.com> | 2023-03-24 14:40:19 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-05-11 23:03:28 +0900 |
commit | 9de1183f3f2baefc2b9ecd81981ad7fe1dde76b6 (patch) | |
tree | 078a27ecd21054e889960ea65aaabd83cca29c60 | |
parent | df2380520926bdbc264cffab0f45da9a21f304c8 (diff) | |
download | linux-stable-9de1183f3f2baefc2b9ecd81981ad7fe1dde76b6.tar.gz linux-stable-9de1183f3f2baefc2b9ecd81981ad7fe1dde76b6.tar.bz2 linux-stable-9de1183f3f2baefc2b9ecd81981ad7fe1dde76b6.zip |
ASoC: soc-compress: Inherit atomicity from DAI link for Compress FE
[ Upstream commit 37b58becc1cee4d591024f2056d7ffa99c6089e0 ]
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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r-- | sound/soc/soc-compress.c | 3 |
1 files changed, 3 insertions, 0 deletions
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) |