Skip to content

Commit

Permalink
ASoC: qdsp6: q6apm-dai: only stop graphs that are started
Browse files Browse the repository at this point in the history
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: 9b4fe0f ("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>
  • Loading branch information
Srinivas Kandagatla authored and Mark Brown committed Jan 26, 2022
1 parent bd2347f commit 8f2e5c6
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions sound/soc/qcom/qdsp6/q6apm-dai.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 8f2e5c6

Please sign in to comment.