mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
ASoC: qcom: q6asm-dai: perform correct state check before closing
Do not stop a q6asm stream if its not started, this can result in
unnecessary dsp command which will timeout anyway something like below:
q6asm-dai ab00000.remoteproc:glink-edge:apr:service@7:dais: CMD 10bcd timeout
Fix this by correctly checking the state.
Fixes: 2a9e92d371 ("ASoC: qdsp6: q6asm: Add q6asm dai driver")
Cc: Stable@vger.kernel.org
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Tested-by: Alexey Klimov <alexey.klimov@linaro.org> # RB5, RB3
Link: https://patch.msgid.link/20251023102444.88158-5-srinivas.kandagatla@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
committed by
Mark Brown
parent
81c53b52de
commit
bfbb12dfa1
@@ -233,13 +233,14 @@ static int q6asm_dai_prepare(struct snd_soc_component *component,
|
||||
prtd->pcm_count = snd_pcm_lib_period_bytes(substream);
|
||||
prtd->pcm_irq_pos = 0;
|
||||
/* rate and channels are sent to audio driver */
|
||||
if (prtd->state) {
|
||||
if (prtd->state == Q6ASM_STREAM_RUNNING) {
|
||||
/* clear the previous setup if any */
|
||||
q6asm_cmd(prtd->audio_client, prtd->stream_id, CMD_CLOSE);
|
||||
q6asm_unmap_memory_regions(substream->stream,
|
||||
prtd->audio_client);
|
||||
q6routing_stream_close(soc_prtd->dai_link->id,
|
||||
substream->stream);
|
||||
prtd->state = Q6ASM_STREAM_STOPPED;
|
||||
}
|
||||
|
||||
ret = q6asm_map_memory_regions(substream->stream, prtd->audio_client,
|
||||
|
||||
Reference in New Issue
Block a user