From 55c5c2467dceb8d88c2be520f49dbd329a29fc77 Mon Sep 17 00:00:00 2001 From: wuzhenghui Date: Mon, 8 Apr 2024 14:19:00 +0800 Subject: [PATCH] fix(esp_hw_support): fix ipc_isr pause/resume order in sleep process --- .../lowpower/cpu_retention/port/esp32p4/sleep_cpu.c | 2 -- components/esp_hw_support/sleep_modes.c | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/components/esp_hw_support/lowpower/cpu_retention/port/esp32p4/sleep_cpu.c b/components/esp_hw_support/lowpower/cpu_retention/port/esp32p4/sleep_cpu.c index f907f9ad32..f27af1d5dc 100644 --- a/components/esp_hw_support/lowpower/cpu_retention/port/esp32p4/sleep_cpu.c +++ b/components/esp_hw_support/lowpower/cpu_retention/port/esp32p4/sleep_cpu.c @@ -586,7 +586,6 @@ void sleep_smp_cpu_sleep_prepare(void) esp_ipc_isr_call((esp_ipc_isr_func_t)smp_core_do_retention, NULL); #else esp_ipc_isr_stall_other_cpu(); - esp_ipc_isr_stall_pause(); #endif } @@ -601,7 +600,6 @@ void sleep_smp_cpu_wakeup_prepare(void) } atomic_store(&s_smp_retention_state[core_id], SMP_IDLE); #else - esp_ipc_isr_stall_resume(); esp_ipc_isr_release_other_cpu(); #endif } diff --git a/components/esp_hw_support/sleep_modes.c b/components/esp_hw_support/sleep_modes.c index 778c4b068e..f627ad27cd 100644 --- a/components/esp_hw_support/sleep_modes.c +++ b/components/esp_hw_support/sleep_modes.c @@ -1244,8 +1244,8 @@ esp_err_t esp_light_sleep_start(void) sleep_smp_cpu_sleep_prepare(); #else esp_ipc_isr_stall_other_cpu(); - esp_ipc_isr_stall_pause(); #endif + esp_ipc_isr_stall_pause(); #endif #if CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION && CONFIG_PM_SLP_IRAM_OPT @@ -1395,10 +1395,10 @@ esp_err_t esp_light_sleep_start(void) #endif #if !CONFIG_FREERTOS_UNICORE + esp_ipc_isr_stall_resume(); #if CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP && SOC_PM_CPU_RETENTION_BY_SW sleep_smp_cpu_wakeup_prepare(); #else - esp_ipc_isr_stall_resume(); esp_ipc_isr_release_other_cpu(); #endif #endif