Merge branch 'bugfix/fix_nolightsleep_after_wifi_init' into 'master'

esp_wifi: fix nolightsleep after wifi init

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

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);
/**
* @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)

View File

@ -1176,6 +1176,15 @@ esp_err_t esp_sleep_enable_wifi_wakeup(void)
#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)
{

View File

@ -579,10 +579,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)
{
for (int i = 0; i < PERIPH_SKIP_LIGHT_SLEEP_NO; i++) {
if (s_periph_skip_light_sleep_cb[i]) {
if (s_periph_skip_light_sleep_cb[i]() == true) {
return true;
if (s_light_sleep_en) {
for (int i = 0; i < PERIPH_SKIP_LIGHT_SLEEP_NO; i++) {
if (s_periph_skip_light_sleep_cb[i]) {
if (s_periph_skip_light_sleep_cb[i]() == true) {
return true;
}
}
}
}

@ -1 +1 @@
Subproject commit a5ce0c65ede0c36332b9cddb98693f436ee0345d
Subproject commit e4415c13367c1dcff2d8e3d7e34052391c71eeff

View File

@ -150,6 +150,7 @@ esp_err_t esp_wifi_deinit(void)
#if SOC_WIFI_HW_TSF
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_sleep_disable_wifi_wakeup();
#endif
#if CONFIG_ESP_WIFI_SLP_IRAM_OPT
esp_pm_unregister_light_sleep_default_params_config_callback();