mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-28 23:23:55 +08:00
ASoC: qdsp6: q6apm-dai: only stop graphs that are started
Its possible that the sound card is just opened and closed without actually
playing stream, ex: if the audio file itself is missing.
Even in such cases we do call stop on graphs that are not yet started.
DSP can throw errors in such cases, so add a check to see if the graph
was started before stopping it.
Fixes: 9b4fe0f1cd
("ASoC: qdsp6: audioreach: add q6apm-dai support")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20220126113549.8853-5-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
bd2347fd67
commit
8f2e5c65ec
@ -308,8 +308,11 @@ static int q6apm_dai_close(struct snd_soc_component *component,
|
||||
struct snd_pcm_runtime *runtime = substream->runtime;
|
||||
struct q6apm_dai_rtd *prtd = runtime->private_data;
|
||||
|
||||
q6apm_graph_stop(prtd->graph);
|
||||
q6apm_unmap_memory_regions(prtd->graph, substream->stream);
|
||||
if (prtd->state) { /* only stop graph that is started */
|
||||
q6apm_graph_stop(prtd->graph);
|
||||
q6apm_unmap_memory_regions(prtd->graph, substream->stream);
|
||||
}
|
||||
|
||||
q6apm_graph_close(prtd->graph);
|
||||
prtd->graph = NULL;
|
||||
kfree(prtd);
|
||||
|
Loading…
Reference in New Issue
Block a user