From 78aba309f32dd3cf49073c77f7307b657d32fd9a Mon Sep 17 00:00:00 2001 From: sibeibei Date: Mon, 14 Oct 2024 16:55:41 +0800 Subject: [PATCH 1/2] fix(wifi): fix some wifi issues 241031 1. fix cant sleep if reconnect to connected ap 2. clear pmk in internal reconnection 3. update connect status for init-->auth --- components/esp_wifi/lib | 2 +- components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h | 1 + components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index 55bacebc2a..34e4b12665 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit 55bacebc2a7b7d00360ec0343a0192e698022a5e +Subproject commit 34e4b12665c5806f9213472ea820bfde48e7f673 diff --git a/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h b/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h index 1777353419..d0ce7e31c5 100644 --- a/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h +++ b/components/wpa_supplicant/esp_supplicant/src/esp_wifi_driver.h @@ -141,6 +141,7 @@ struct wpa_funcs { void (*wpa_config_done)(void); uint8_t *(*owe_build_dhie)(uint16_t group); int (*owe_process_assoc_resp)(const u8 *rsn_ie, size_t rsn_len, const uint8_t *dh_ie, size_t dh_len); + void (*wpa_sta_clear_curr_pmksa)(void); }; struct wpa2_funcs { diff --git a/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c b/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c index 151e30dbbb..fef09195f9 100644 --- a/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c +++ b/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c @@ -379,6 +379,7 @@ int esp_supplicant_init(void) wpa_cb->wpa_config_bss = NULL;//wpa_config_bss; wpa_cb->wpa_michael_mic_failure = wpa_michael_mic_failure; wpa_cb->wpa_config_done = wpa_config_done; + wpa_cb->wpa_sta_clear_curr_pmksa = wpa_sta_clear_curr_pmksa; esp_wifi_register_wpa3_cb(wpa_cb); #ifdef CONFIG_OWE_STA From 25143e1e4ab4b2a4463877b77128816f1c19ab8b Mon Sep 17 00:00:00 2001 From: "wangtao@espressif.com" Date: Fri, 27 Sep 2024 18:39:57 +0800 Subject: [PATCH 2/2] fix(wifi): fix ampdu to normal cause free buffer twice issue --- components/esp_rom/esp32c2/ld/esp32c2.rom.ld | 2 +- components/esp_rom/esp32c3/ld/esp32c3.rom.ld | 2 +- components/esp_rom/esp32s3/ld/esp32s3.rom.ld | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/components/esp_rom/esp32c2/ld/esp32c2.rom.ld b/components/esp_rom/esp32c2/ld/esp32c2.rom.ld index d9111de86b..798133f767 100644 --- a/components/esp_rom/esp32c2/ld/esp32c2.rom.ld +++ b/components/esp_rom/esp32c2/ld/esp32c2.rom.ld @@ -633,7 +633,7 @@ ppGetTxframe = 0x40001bf8; ppMapTxQueue = 0x40001bfc; ppProcTxSecFrame = 0x40001c00; ppProcessRxPktHdr = 0x40001c04; -ppProcessTxQ = 0x40001c08; +/*ppProcessTxQ = 0x40001c08;*/ ppRecordBarRRC = 0x40001c0c; lmacRequestTxopQueue = 0x40001c10; lmacReleaseTxopQueue = 0x40001c14; diff --git a/components/esp_rom/esp32c3/ld/esp32c3.rom.ld b/components/esp_rom/esp32c3/ld/esp32c3.rom.ld index b82b29e6f5..465f4e4af3 100644 --- a/components/esp_rom/esp32c3/ld/esp32c3.rom.ld +++ b/components/esp_rom/esp32c3/ld/esp32c3.rom.ld @@ -745,7 +745,7 @@ ppEnqueueTxDone = 0x400016cc; ppGetTxQFirstAvail_Locked = 0x400016d0; ppGetTxframe = 0x400016d4; ppProcessRxPktHdr = 0x400016e0; -ppProcessTxQ = 0x400016e4; +/*ppProcessTxQ = 0x400016e4;*/ ppRecordBarRRC = 0x400016e8; lmacRequestTxopQueue = 0x400016ec; lmacReleaseTxopQueue = 0x400016f0; diff --git a/components/esp_rom/esp32s3/ld/esp32s3.rom.ld b/components/esp_rom/esp32s3/ld/esp32s3.rom.ld index 2e2e5c7a8e..4aa20298fd 100644 --- a/components/esp_rom/esp32s3/ld/esp32s3.rom.ld +++ b/components/esp_rom/esp32s3/ld/esp32s3.rom.ld @@ -1023,7 +1023,7 @@ ppGetTxQFirstAvail_Locked = 0x400055b0; ppGetTxframe = 0x400055bc; /*ppMapTxQueue = 0x400055c8;*/ ppProcessRxPktHdr = 0x400055e0; -ppProcessTxQ = 0x400055ec; +/*ppProcessTxQ = 0x400055ec;*/ ppRecordBarRRC = 0x400055f8; lmacRequestTxopQueue = 0x40005604; lmacReleaseTxopQueue = 0x40005610;