mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 09:59:32 +00:00
ASoC: qdsp6: q6apm-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: 9b4fe0f1cd
("ASoC: qdsp6: audioreach: add q6apm-dai support")
Reported-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20220610144818.511797-1-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
12abc4d10d
commit
58136d93d4
1 changed files with 6 additions and 0 deletions
|
@ -147,6 +147,12 @@ static int q6apm_dai_prepare(struct snd_soc_component *component,
|
|||
cfg.num_channels = runtime->channels;
|
||||
cfg.bit_width = prtd->bits_per_sample;
|
||||
|
||||
if (prtd->state) {
|
||||
/* clear the previous setup if any */
|
||||
q6apm_graph_stop(prtd->graph);
|
||||
q6apm_unmap_memory_regions(prtd->graph, substream->stream);
|
||||
}
|
||||
|
||||
prtd->pcm_count = snd_pcm_lib_period_bytes(substream);
|
||||
prtd->pos = 0;
|
||||
/* rate and channels are sent to audio driver */
|
||||
|
|
Loading…
Reference in a new issue