Skip to content

Commit cdc3a00

Browse files
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>
1 parent a84d263 commit cdc3a00

1 file changed

Lines changed: 344 additions & 79 deletions

File tree

0 commit comments

Comments
 (0)