summaryrefslogtreecommitdiff
path: root/scripts/basic
diff options
context:
space:
mode:
authorVladyslav Tymoshchuk <tvlad744@gmail.com>2026-10-14 19:27:02 +0300
committerMark Brown <broonie@kernel.org>2026-10-15 16:53:46 +0100
commit222d04cf55bc5b4b63602454014619c78deda89a (patch)
tree892e3cc737625474335b070326fc7318b85bf15b /scripts/basic
parent0337b8129cf676b8eb767b2a1f312955760a5460 (diff)
downloadlinux-222d04cf55bc5b4b63602454014619c78deda89a.tar.gz
linux-222d04cf55bc5b4b63602454014619c78deda89a.zip
ASoC: qcom: q6asm-dai: wrap the position of a full ring to 0
Commit 44432315444c ("ASoC: qcom: q6asm-dai: use q6asm_get_hw_pointer") took the position from the number of period buffers the DSP has returned in the current lap, 1..periods, and reports one frame less than that, as q6apm-dai does. One frame short, a playback stream whose application stops feeding it never reaches the stop threshold: the DSP returns the last queued buffer, the position stops at appl_ptr - 1 and no period interrupt comes any more, so ALSA never detects the underrun, the stream stays RUNNING and drain only ends on its timeout. On capture, the last frame of each period is held back until the next one. Before that commit the position wrapped to 0 at the end of the ring. Do that again, as for q6apm-dai. Fixes: 44432315444c ("ASoC: qcom: q6asm-dai: use q6asm_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-4-tvlad744@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'scripts/basic')
0 files changed, 0 insertions, 0 deletions