From fb0b6e098718d3f91a02c104165a1b1f1b239b78 Mon Sep 17 00:00:00 2001 From: laokaiyao Date: Thu, 12 Dec 2024 21:28:59 +0800 Subject: [PATCH] fix(i2s): fixed incorrect buf size calculation --- components/driver/i2s/i2s_common.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/components/driver/i2s/i2s_common.c b/components/driver/i2s/i2s_common.c index 41b58a035a..b226dbc94c 100644 --- a/components/driver/i2s/i2s_common.c +++ b/components/driver/i2s/i2s_common.c @@ -347,7 +347,11 @@ err: uint32_t i2s_get_buf_size(i2s_chan_handle_t handle, uint32_t data_bit_width, uint32_t dma_frame_num) { uint32_t active_chan = handle->active_slot; +#if CONFIG_IDF_TARGET_ESP32 uint32_t bytes_per_sample = ((data_bit_width + 15) / 16) * 2; +#else + uint32_t bytes_per_sample = (data_bit_width + 7) / 8; +#endif // CONFIG_IDF_TARGET_ESP32 uint32_t bytes_per_frame = bytes_per_sample * active_chan; uint32_t bufsize = dma_frame_num * bytes_per_frame; #if SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE