[PATCH] ASoC: soc-pcm: fixup soc_pcm_params_symmetry()
Kuninori Morimoto
kuninori.morimoto.gx at renesas.com
Thu Apr 15 08:24:01 CEST 2021
Hi Mark
> commit 3a9067211122 ("ASoC: soc-pcm: cleanup soc_pcm_params_symmetry()")
> cleanups soc_pcm_params_symmetry() by addig new
> __soc_pcm_params_symmetry() macro.
>
> It checks symmetry first, and checks each DAI settings if symmetry
> was true.
> But original code checked
>
> symmetric_rate : DAI_Link / CPU (A)
> symmetric_channels : DAI_Link / CPU / Codec (B)
> symmetric_sample_bits : DAI_Link / CPU / Codec (B)
>
> (A) was using for_each_rtd_cpu_dais()
> (B) was using for_each_rtd_dais()
>
> Current code is using (B) for all symmetric_xxx. This is bug.
Oops ?
More older verion was
symmetric_rate : DAI_Link / CPU / Codec (B)
symmetric_channels : DAI_Link / CPU / Codec (B)
symmetric_sample_bits : DAI_Link / CPU / Codec (B)
but commit c840f7698d26 ("ASoC: soc-pcm: Merge for_each_rtd_cpu/codec_dais()")
had bug, and code become
symmetric_rate : DAI_Link / CPU (A)
symmetric_channels : DAI_Link / CPU / Codec (B)
symmetric_sample_bits : DAI_Link / CPU / Codec (B)
And commit 3a9067211122 ("ASoC: soc-pcm: cleanup soc_pcm_params_symmetry()")
back again
symmetric_rate : DAI_Link / CPU / Codec (B)
symmetric_channels : DAI_Link / CPU / Codec (B)
symmetric_sample_bits : DAI_Link / CPU / Codec (B)
Does this issue had been happen since older versoin ??
# aplay 44100.wav
# aplay 44100.wav
=> [kernel] be.ak4613-hifi: ASoC: unmatched rate symmetry: 44100 - 48000
[kernel] be.ak4613-hifi: ASoC: hw_params BE failed -22
If so, correct solution should be (A2)
(A1) Symmetric checks CPU only
(A2) Symmetric checks both CPU / Codec, but ignores dummy-DAI
Thank you for your help !!
Best regards
---
Kuninori Morimoto
More information about the Alsa-devel
mailing list