diff options
author | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2020-06-11 13:41:58 +0100 |
---|---|---|
committer | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2020-06-29 17:15:43 +0100 |
commit | 9c514e2aa5a912225b66b28da7ccbc249d0ee700 (patch) | |
tree | 337d0da3d7113f398b1b94568ced71f8a5d3e5f9 | |
parent | e58e6f4ea0498e9a402e58dd1b8283fa3dab90e5 (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.c | 5 |
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); |