diff --git a/components/bt/controller/esp32c3/bt.c b/components/bt/controller/esp32c3/bt.c index b8632bccac..1a47519c2e 100644 --- a/components/bt/controller/esp32c3/bt.c +++ b/components/bt/controller/esp32c3/bt.c @@ -740,13 +740,16 @@ static void IRAM_ATTR btdm_sleep_exit_phase0(void *param) } #endif - btdm_wakeup_request(); + int event = (int) param; + if (event == BTDM_ASYNC_WAKEUP_SRC_VHCI || event == BTDM_ASYNC_WAKEUP_SRC_DISA) { + btdm_wakeup_request(); + } if (s_lp_cntl.wakeup_timer_required && s_lp_stat.wakeup_timer_started) { esp_timer_stop(s_btdm_slp_tmr); s_lp_stat.wakeup_timer_started = 0; } - int event = (int) param; + if (event == BTDM_ASYNC_WAKEUP_SRC_VHCI || event == BTDM_ASYNC_WAKEUP_SRC_DISA) { semphr_give_wrapper(s_wakeup_req_sem); } diff --git a/components/bt/controller/lib b/components/bt/controller/lib index d1115cabc2..5ba6226876 160000 --- a/components/bt/controller/lib +++ b/components/bt/controller/lib @@ -1 +1 @@ -Subproject commit d1115cabc2fe9d80bf715ba74d58ca829590c515 +Subproject commit 5ba622687683fb898194d42eed020a60070887d6 diff --git a/components/esp_system/sleep_modes.c b/components/esp_system/sleep_modes.c index 68d73e43e4..8c8e9dd6b4 100644 --- a/components/esp_system/sleep_modes.c +++ b/components/esp_system/sleep_modes.c @@ -458,15 +458,15 @@ static uint32_t IRAM_ATTR esp_sleep_start(uint32_t pd_flags) suspend_uarts(); } -#if CONFIG_MAC_BB_PD - mac_bb_power_down_cb_execute(); -#endif - // Save current frequency and switch to XTAL rtc_cpu_freq_config_t cpu_freq_config; rtc_clk_cpu_freq_get_config(&cpu_freq_config); rtc_clk_cpu_freq_set_xtal(); +#if CONFIG_MAC_BB_PD + mac_bb_power_down_cb_execute(); +#endif + #if SOC_PM_SUPPORT_EXT_WAKEUP // Configure pins for external wakeup if (s_config.wakeup_triggers & RTC_EXT0_TRIG_EN) {