892fe45900
With TCD set to loop, there is a window where the DMA has raised Done, but not reloaded the TCD, resetting count and clearing Done. In this window imxrt_dmach_getcount could then return 0. Resulting in imxrt_dma_nextrx returning RXDMA_BUFFER_SIZE. Which is not a valid index in the FIFO. Since the count will be set to RXDMA_BUFFER_SIZE. When the DMA engine completes the TCD reload. The imxrt_dma_nextrx would return 0. Therefore: (RXDMA_BUFFER_SIZE - dmaresidual) % RXDMA_BUFFER_SIZE accomplishes this. |
||
---|---|---|
.. | ||
include | ||
src | ||
CMakeLists.txt | ||
Kconfig |