diff options
author | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2023-02-09 13:27:59 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2023-02-09 15:03:27 +0100 |
commit | c2ac3aec474da0455df79c4a182f19687bc98d1d (patch) | |
tree | 8caf23200153a573cd0870152a75ef4d833c2560 /sound/soc | |
parent | ASoC: dt-bindings: meson: convert axg sound card control to schema (diff) | |
download | linux-c2ac3aec474da0455df79c4a182f19687bc98d1d.tar.xz linux-c2ac3aec474da0455df79c4a182f19687bc98d1d.zip |
ASoC: qcom: q6apm-lpass-dai: unprepare stream if its already prepared
prepare callback can be called multiple times, so unprepare the stream
if its already prepared.
Without this DSP is not happy to setting the params on a already
prepared graph.
Fixes: 9b4fe0f1cd79 ("ASoC: qdsp6: audioreach: add q6apm-dai support")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20230209122806.18923-2-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/qcom/qdsp6/q6apm-lpass-dais.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c b/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c index ce9e5646d8f3..23d23bc6fbaa 100644 --- a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c +++ b/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c @@ -127,6 +127,11 @@ static int q6apm_lpass_dai_prepare(struct snd_pcm_substream *substream, struct s int graph_id = dai->id; int rc; + if (dai_data->is_port_started[dai->id]) { + q6apm_graph_stop(dai_data->graph[dai->id]); + dai_data->is_port_started[dai->id] = false; + } + /** * It is recommend to load DSP with source graph first and then sink * graph, so sequence for playback and capture will be different |