Merge branch 'bugfix/fix_nolightsleep_after_wifi_init_v4.3' into 'release/v4.3'

esp_wif: fix nolightsleep after wifi init v4.3

See merge request espressif/esp-idf!13403
This commit is contained in:
Jiang Jiang Jian
2021-04-30 05:52:09 +00:00
5 changed files with 23 additions and 5 deletions

View File

@ -580,10 +580,12 @@ esp_err_t esp_pm_unregister_skip_light_sleep_callback(skip_light_sleep_cb_t cb)
static inline bool IRAM_ATTR periph_should_skip_light_sleep(void) static inline bool IRAM_ATTR periph_should_skip_light_sleep(void)
{ {
for (int i = 0; i < PERIPH_SKIP_LIGHT_SLEEP_NO; i++) { if (s_light_sleep_en) {
if (s_periph_skip_light_sleep_cb[i]) { for (int i = 0; i < PERIPH_SKIP_LIGHT_SLEEP_NO; i++) {
if (s_periph_skip_light_sleep_cb[i]() == true) { if (s_periph_skip_light_sleep_cb[i]) {
return true; if (s_periph_skip_light_sleep_cb[i]() == true) {
return true;
}
} }
} }
} }

View File

@ -303,6 +303,12 @@ esp_err_t esp_sleep_enable_uart_wakeup(int uart_num);
*/ */
esp_err_t esp_sleep_enable_wifi_wakeup(void); esp_err_t esp_sleep_enable_wifi_wakeup(void);
/**
* @brief Disable wakeup by WiFi MAC
* @return
* - ESP_OK on success
*/
esp_err_t esp_sleep_disable_wifi_wakeup(void);
/** /**
* @brief Get the bit mask of GPIOs which caused wakeup (ext1) * @brief Get the bit mask of GPIOs which caused wakeup (ext1)

View File

@ -1172,6 +1172,15 @@ esp_err_t esp_sleep_enable_wifi_wakeup(void)
#endif #endif
} }
esp_err_t esp_sleep_disable_wifi_wakeup(void)
{
#if SOC_PM_SUPPORT_WIFI_WAKEUP
s_config.wakeup_triggers &= (~RTC_WIFI_TRIG_EN);
return ESP_OK;
#else
return ESP_ERR_NOT_SUPPORTED;
#endif
}
esp_sleep_wakeup_cause_t esp_sleep_get_wakeup_cause(void) esp_sleep_wakeup_cause_t esp_sleep_get_wakeup_cause(void)
{ {

View File

@ -150,6 +150,7 @@ esp_err_t esp_wifi_deinit(void)
#if SOC_WIFI_HW_TSF #if SOC_WIFI_HW_TSF
esp_pm_unregister_skip_light_sleep_callback(esp_wifi_internal_is_tsf_active); esp_pm_unregister_skip_light_sleep_callback(esp_wifi_internal_is_tsf_active);
esp_pm_unregister_inform_out_light_sleep_overhead_callback(esp_wifi_internal_update_light_sleep_wake_ahead_time); esp_pm_unregister_inform_out_light_sleep_overhead_callback(esp_wifi_internal_update_light_sleep_wake_ahead_time);
esp_sleep_disable_wifi_wakeup();
#endif #endif
#if CONFIG_ESP_WIFI_SLP_IRAM_OPT #if CONFIG_ESP_WIFI_SLP_IRAM_OPT
esp_pm_unregister_light_sleep_default_params_config_callback(); esp_pm_unregister_light_sleep_default_params_config_callback();