From: Srinivas Kandagatla Date: Thu, 9 Feb 2023 12:27:59 +0000 (+0000) Subject: ASoC: qcom: q6apm-lpass-dai: unprepare stream if its already prepared X-Git-Tag: v6.6.7~3340^2~4^2~41^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c2ac3aec474da0455df79c4a182f19687bc98d1d;p=platform%2Fkernel%2Flinux-starfive.git 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 Link: https://lore.kernel.org/r/20230209122806.18923-2-srinivas.kandagatla@linaro.org Signed-off-by: Mark Brown --- diff --git a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c b/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c index ce9e564..23d23bc 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