aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2020-06-11 13:41:58 +0100
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2020-06-29 17:15:43 +0100
commit9c514e2aa5a912225b66b28da7ccbc249d0ee700 (patch)
tree337d0da3d7113f398b1b94568ced71f8a5d3e5f9
parente58e6f4ea0498e9a402e58dd1b8283fa3dab90e5 (diff)
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@linaro.org>
-rw-r--r--sound/soc/qcom/qdsp6/q6asm-dai.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sound/soc/qcom/qdsp6/q6asm-dai.c b/sound/soc/qcom/qdsp6/q6asm-dai.c
index c3558288242a..b2316fcf9461 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);