diff --git a/arch/xtensa/src/esp32s3/esp32s3_dma.c b/arch/xtensa/src/esp32s3/esp32s3_dma.c index 81310b8feda7b..b0653b90f0427 100644 --- a/arch/xtensa/src/esp32s3/esp32s3_dma.c +++ b/arch/xtensa/src/esp32s3/esp32s3_dma.c @@ -285,11 +285,16 @@ uint32_t esp32s3_dma_setup(struct esp32s3_dmadesc_s *dmadesc, uint32_t num, } dma_size = 0x1000 - alignment; + cache_invalidate_addr(pdata, bytes); } else if(!tx && burst_en) { dma_size = ESP32S3_DMA_BUFLEN_MAX_4B_ALIGNED; } + else if(tx && buffer_in_psram) + { + cache_writeback_addr(pdata, bytes); + } for (i = 0; i < num; i++) {