While testing X13s audio, we found multiple stablity issues this patchset fixes these issues. From q6dsp side issues are around locking of position pointer and handle multiple prepare cases along with pulse audio timerbased scheduling workaround.
From LPASS codec side most of the staiblity issues were around runtime pm, hitting various issues as the codec was firstly resetting the soundwire block for every clk disable/enable which is taking the slaves out of sync and resulting in re-enumerating. Second issue was around fsgen clk is not brining up the codec out of suspend as it was not added after runtime pm enabled. Final issue was with codec mclk rate which should have been 192KHz same as npl instead of 96KHz. We were getting lucky as wsa drivers are setting the same clk to 192KHz.
With this patches, x13s audio is pretty stable.
thanks, Srini
Srinivas Kandagatla (8): ASoC: qcom: q6apm-lpass-dai: unprepare stream if its already prepared ASoC: qcom: q6apm-dai: fix race condition while updating the position pointer ASoC: qcom: q6apm-dai: Add SNDRV_PCM_INFO_BATCH flag ASoC: qcom: audioreach: fix ADSP ready check ASoC: codecs: lpass: register mclk after runtime pm ASoC: codecs: lpass: fix incorrect mclk rate ASoC: codecs: lpass: do not reset soundwire block on clk enable ASoC: codecs: lpass: remove not so useful verbose log
sound/soc/codecs/lpass-rx-macro.c | 31 ++++++++++-------- sound/soc/codecs/lpass-tx-macro.c | 25 ++++++++------ sound/soc/codecs/lpass-va-macro.c | 43 +++++++++++++------------ sound/soc/codecs/lpass-wsa-macro.c | 27 ++++++++-------- sound/soc/qcom/qdsp6/q6apm-dai.c | 22 +++++++++++-- sound/soc/qcom/qdsp6/q6apm-lpass-dais.c | 5 +++ sound/soc/qcom/qdsp6/q6apm.c | 17 +++++----- 7 files changed, 101 insertions(+), 69 deletions(-)