455829248f
Fix issue #14618. The I2S controller may generate an underrun/overrun error whenever the current sample in the Data Register (DR) has not been read/written yet when a new one needs to be sent/received. When the DMA operation is completed there is no much time to re-enable it for a new transfer. For example, in the case of a PDM microphone clocked at 2MHz we only have 8us to re-program the DMA to receive the new 16-bit sample. Doing a complete DMA configuration using the dma_config() API is an operation that is consuming too much time and driver is close to the limit. Instead, the dma_reload() routine only programs the minimum needed information (src, dst, len) for the new transfer in order to restart the DMA. Signed-off-by: Armando Visconti <armando.visconti@st.com> |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
Kconfig | ||
Kconfig.cavs | ||
Kconfig.sam_ssc | ||
Kconfig.stm32 | ||
i2s_cavs.c | ||
i2s_cavs.h | ||
i2s_common.c | ||
i2s_handlers.c | ||
i2s_ll_stm32.c | ||
i2s_ll_stm32.h | ||
i2s_sam_ssc.c |