fix(sleep): uart suspend/flush should also check if port is enabled on esp32

This commit is contained in:
Song Ruo Jing
2025-03-13 19:10:21 +08:00
parent 2b6ddf64f5
commit f39c15c80b

View File

@@ -532,13 +532,9 @@ static void IRAM_ATTR resume_timers(uint32_t pd_flags) {
static void IRAM_ATTR flush_uarts(void) static void IRAM_ATTR flush_uarts(void)
{ {
for (int i = 0; i < SOC_UART_NUM; ++i) { for (int i = 0; i < SOC_UART_NUM; ++i) {
#ifdef CONFIG_IDF_TARGET_ESP32
esp_rom_uart_tx_wait_idle(i);
#else
if (periph_ll_periph_enabled(PERIPH_UART0_MODULE + i)) { if (periph_ll_periph_enabled(PERIPH_UART0_MODULE + i)) {
esp_rom_uart_tx_wait_idle(i); esp_rom_uart_tx_wait_idle(i);
} }
#endif
} }
} }
@@ -551,11 +547,9 @@ static IRAM_ATTR void suspend_uarts(void)
{ {
s_suspended_uarts_bmap = 0; s_suspended_uarts_bmap = 0;
for (int i = 0; i < SOC_UART_NUM; ++i) { for (int i = 0; i < SOC_UART_NUM; ++i) {
#ifndef CONFIG_IDF_TARGET_ESP32
if (!periph_ll_periph_enabled(PERIPH_UART0_MODULE + i)) { if (!periph_ll_periph_enabled(PERIPH_UART0_MODULE + i)) {
continue; continue;
} }
#endif
uart_ll_force_xoff(i); uart_ll_force_xoff(i);
s_suspended_uarts_bmap |= BIT(i); s_suspended_uarts_bmap |= BIT(i);
#if SOC_UART_SUPPORT_FSM_TX_WAIT_SEND #if SOC_UART_SUPPORT_FSM_TX_WAIT_SEND