summaryrefslogtreecommitdiff
path: root/scripts/basic/split-include.c
diff options
context:
space:
mode:
authorVladyslav Tymoshchuk <tvlad744@gmail.com>2026-10-14 19:27:01 +0300
committerMark Brown <broonie@kernel.org>2026-10-15 16:53:45 +0100
commit0337b8129cf676b8eb767b2a1f312955760a5460 (patch)
treecaecd9f97f3fc6d61c134fec689232d297e5e3ce /scripts/basic/split-include.c
parent0ea3e0b196f9dcc17b40ac881a6efef06459975b (diff)
downloadlinux-0337b8129cf676b8eb767b2a1f312955760a5460.tar.gz
linux-0337b8129cf676b8eb767b2a1f312955760a5460.zip
ASoC: qcom: q6apm: reset the hw pointer with the fragment queue
On every prepare in queue mode, q6apm_dai_prepare() frees and allocates the fragments again, and q6apm_alloc_fragments() resets dsp_buf, so the first buffer queued after it is the first one of the ring. The hw pointer that q6apm_dai_pointer() reports is left as it was. q6apm-dai used to keep its own position and cleared it in prepare. Since commit a93dad6f4e6a ("ASoC: q6apm-dai: make use of q6apm_get_hw_pointer") the position comes from the hw pointer, so a stream that is prepared again, e.g. to recover from an xrun, reports the position of the previous run until the DSP returns its first buffer, while ALSA has reset its own pointer to 0. Reset the hw pointer together with dsp_buf. Fixes: a93dad6f4e6a ("ASoC: q6apm-dai: make use of q6apm_get_hw_pointer") Cc: stable@vger.kernel.org Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Vladyslav Tymoshchuk <tvlad744@gmail.com> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Tested-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Link: https://patch.msgid.link/20261014162703.10172-3-tvlad744@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'scripts/basic/split-include.c')
0 files changed, 0 insertions, 0 deletions