zephyr/drivers/i2s
Armando Visconti 455829248f drivers/i2s_ll_stm32.c: (FIX) use dma_reload() to re-start the DMA
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>
2019-03-18 11:22:19 -05:00
..
CMakeLists.txt
Kconfig
Kconfig.cavs
Kconfig.sam_ssc
Kconfig.stm32 kconfig: drivers: i2s: Remove redundant deps. 2019-03-09 10:01:12 -05:00
i2s_cavs.c drivers: i2s_cavs: replace cache operation macros 2019-02-20 07:33:11 -05:00
i2s_cavs.h drivers: i2s_cavs: add transmit underrun status 2019-02-04 00:52:15 -05:00
i2s_common.c all: Update reserved function names 2019-03-11 13:48:42 -04:00
i2s_handlers.c all: Update reserved function names 2019-03-11 13:48:42 -04:00
i2s_ll_stm32.c drivers/i2s_ll_stm32.c: (FIX) use dma_reload() to re-start the DMA 2019-03-18 11:22:19 -05:00
i2s_ll_stm32.h
i2s_sam_ssc.c