]> git.hungrycats.org Git - linux/commit
ASoC: qcom: q6apm: keep the graph start count in sync with the DSP
authorJorijn van der Graaf <jorijnvdgraaf@catcrafts.net>
Sun, 26 Jul 2026 21:12:26 +0000 (23:12 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 11 Aug 2026 14:06:08 +0000 (15:06 +0100)
commitdaa7ffd765ae67a83e77dae32c66ce2d6d995d19
tree5ae3f605beab0c64d26c3877180b1c7a18966501
parent9e0698b77684c38f12eb86f828e8a49cc5624304
ASoC: qcom: q6apm: keep the graph start count in sync with the DSP

q6apm_graph_start() increments start_count even when APM_CMD_GRAPH_START
fails, leaving the graph counted as running while the DSP never started
it. A later start - a retried prepare, or a resume after a failed start -
then finds a non-zero count, skips the command and returns success with
no data flowing.

Count the graph only once the DSP has accepted the start. The count then
stays at zero for a graph that never started, so also stop decrementing
below zero in q6apm_graph_stop(): the compressed free path stops
unconditionally, and a negative count would make the next start skip the
command in the same way.

Fixes: 5477518b8a0e ("ASoC: qdsp6: audioreach: add q6apm support")
Assisted-by: Claude:claude-opus-5
Signed-off-by: Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>
Link: https://patch.msgid.link/20260726211226.94059-1-jorijnvdgraaf@catcrafts.net
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/qcom/qdsp6/q6apm.c