summaryrefslogtreecommitdiff
path: root/scripts/basic
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2026-10-15 16:53:47 +0100
committerMark Brown <broonie@kernel.org>2026-10-15 16:53:47 +0100
commit56047769960a9eda5e60f659e1f1b8b777955eec (patch)
tree6a0f7967ac66306458b74d6088b554ace91168cc /scripts/basic
parent18123081c09623e884a108ff23d22a98505626e9 (diff)
parent222d04cf55bc5b4b63602454014619c78deda89a (diff)
downloadlinux-56047769960a9eda5e60f659e1f1b8b777955eec.tar.gz
linux-56047769960a9eda5e60f659e1f1b8b777955eec.zip
ASoC: qcom: qdsp6: report the position of a drained buffer
Vladyslav Tymoshchuk <tvlad744@gmail.com> says: Since commit a93dad6f4e6a ("ASoC: q6apm-dai: make use of q6apm_get_hw_pointer") q6apm-dai reports one frame less than the position of the last buffer the DSP returned, and commit 44432315444c ("ASoC: qcom: q6asm-dai: use q6asm_get_hw_pointer") did the same in q6asm-dai. When the application stops feeding a playback stream, the position never reaches appl_ptr: ALSA never sees the underrun, the stream stays RUNNING without period interrupts, and drain ends on its timeout with -EIO. On a OnePlus Pad 3 (SM8750) this left PipeWire's PCM stuck for hours after a stall. Patch 1 wraps the q6apm position to 0 at the end of the ring, as before a93dad6f4e6a. Patch 2 resets the q6apm hw pointer on prepare, which a93dad6f4e6a also stopped doing. Patch 3 is patch 1 for q6asm-dai. Patches 1 and 2 are tested on SM8750 (numbers in patch 1). Patch 3 is compile-tested only; a test on a Q6ASM board (RB3, RB5) and on x1e or sc8280xp for patches 1 and 2 would be very welcome. The RFC "ASoC: qcom: q6apm: correct PCM formats and error handling" by Zhang Jiaxi [1] touches the same hw pointer, in graph_callback() (4/4 "recover PCM from failed data receipts"). The two do not conflict: that series changes when the hw pointer is published, this one how it is turned into a position and when it is reset, and that series applies on top of this one on sound/for-next without conflicts. The analysis, the patches and this text were drafted with an AI assistant (Claude, see Assisted-by); I reviewed them and ran the tests described in the patches. [1] https://lore.kernel.org/r/SY5PR01MB10600B2BE812BAA1B0FA501B4A1932@SY5PR01MB10600.ausprd01.prod.outlook.com Link: https://patch.msgid.link/20261014162703.10172-1-tvlad744@gmail.com
Diffstat (limited to 'scripts/basic')
0 files changed, 0 insertions, 0 deletions