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 --- 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);