mirror of
https://github.com/apache/nuttx.git
synced 2026-05-22 22:20:01 +08:00
esp_i2s: fix I2S RX DMA path for ESP32-S3
Fix multiple bugs in the I2S RX receive path on ESP32-S3 with GDMA: - Set streaming=true in i2s_rxdma_start so completed buffers are not incorrectly marked AUDIO_APB_FINAL - Restore up_enable_irq calls for DMA interrupt after esp_dma_load resets the channel - Skip i2s_hal_rx_reset/rx_reset_fifo on ESP32-S3 which clears the TDM slot configuration set by i2s_configure - Accept 1-16 RX channels on ESP32-S3 (was limited to 2) - Add getreg32 read-back after DMA start to flush CPU write buffer - Auto-stop RX channel when no pending buffers remain, preventing hardware from running without DMA descriptors after stop - Remove duplicate return OK in i2s_rxdma_start - Fix i2s_ll_tx_enable_mono_mode to i2s_ll_rx_enable_mono_mode in i2s_rxchannels - Fix tx_slot_cfg.std to rx_slot_cfg.std in RX PCM slot config - Fix DMA direction, peripheral ID, data_width, rx_start sequencing, and rx_eof_num word count in RX path - Fix esp32s3_board_i2s.c I2S port index Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
This commit is contained in: