[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200611124159.20742-8-srinivas.kandagatla@linaro.org>
Date: Thu, 11 Jun 2020 13:41:58 +0100
From: Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
To: broonie@...nel.org
Cc: vkoul@...nel.org, perex@...ex.cz, tiwai@...e.com,
alsa-devel@...a-project.org, lgirdwood@...il.com,
linux-kernel@...r.kernel.org,
Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
Subject: [PATCH 7/8] ASoC: q6asm-dai: check available buffer size before sending
This patch add simple check before sending data buffer to dsp which will
ensure that we are not sending any buffers which are not already available.
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
---
sound/soc/qcom/qdsp6/q6asm-dai.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/sound/soc/qcom/qdsp6/q6asm-dai.c b/sound/soc/qcom/qdsp6/q6asm-dai.c
index 892411f81613..7aba3c07810b 100644
--- a/sound/soc/qcom/qdsp6/q6asm-dai.c
+++ b/sound/soc/qcom/qdsp6/q6asm-dai.c
@@ -534,13 +534,12 @@ static void compress_event_handler(uint32_t opcode, uint32_t token,
prtd->copied_total += bytes_written;
snd_compr_fragment_elapsed(substream);
- if (prtd->state != Q6ASM_STREAM_RUNNING) {
+ avail = prtd->bytes_received - prtd->bytes_sent;
+ if (prtd->state != Q6ASM_STREAM_RUNNING || avail <= 0) {
spin_unlock_irqrestore(&prtd->lock, flags);
break;
}
- avail = prtd->bytes_received - prtd->bytes_sent;
-
if (avail >= prtd->pcm_count) {
q6asm_write_async(prtd->audio_client, prtd->stream_id,
prtd->pcm_count, 0, 0, 0);
--
2.21.0
Powered by blists - more mailing lists