From 626a86111541922beac6e2b886147fe81c6df6c6 Mon Sep 17 00:00:00 2001 From: morris Date: Mon, 22 Feb 2021 12:07:50 +0800 Subject: [PATCH] async_mcp: clean eof flag when prepare rx descriptors --- components/esp_system/esp_async_memcpy.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/esp_system/esp_async_memcpy.c b/components/esp_system/esp_async_memcpy.c index dce20ca492..38848faad9 100644 --- a/components/esp_system/esp_async_memcpy.c +++ b/components/esp_system/esp_async_memcpy.c @@ -135,6 +135,7 @@ static int async_memcpy_prepare_receive(async_memcpy_t asmcp, void *buffer, size while (size > DMA_DESCRIPTOR_BUFFER_MAX_SIZE) { if (desc->dw0.owner != DMA_DESCRIPTOR_BUFFER_OWNER_DMA) { + desc->dw0.suc_eof = 0; desc->dw0.size = DMA_DESCRIPTOR_BUFFER_MAX_SIZE; desc->buffer = &buf[prepared_length]; desc = desc->next; // move to next descriptor @@ -148,6 +149,7 @@ static int async_memcpy_prepare_receive(async_memcpy_t asmcp, void *buffer, size if (size) { if (desc->dw0.owner != DMA_DESCRIPTOR_BUFFER_OWNER_DMA) { end = desc; // the last descriptor used + desc->dw0.suc_eof = 0; desc->dw0.size = size; desc->buffer = &buf[prepared_length]; desc = desc->next; // move to next descriptor