Merge branch 'bugfix/fix_some_wifi_bugs_240517_v5.0' into 'release/v5.0'

fix(wifi): fix some wifi issues(Backport v5.0)

See merge request espressif/esp-idf!30917
This commit is contained in:
Jiang Jiang Jian
2024-05-20 13:31:03 +08:00
7 changed files with 22 additions and 20 deletions

View File

@@ -1,5 +1,5 @@
/* /*
* SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
*/ */
@@ -1482,7 +1482,7 @@ is_lmac_idle = 0x40001b0c;
/*lmacAdjustTimestamp = 0x40001b10;*/ /*lmacAdjustTimestamp = 0x40001b10;*/
lmacDiscardAgedMSDU = 0x40001b14; lmacDiscardAgedMSDU = 0x40001b14;
/*lmacDiscardMSDU = 0x40001b18;*/ /*lmacDiscardMSDU = 0x40001b18;*/
lmacEndFrameExchangeSequence = 0x40001b1c; /*lmacEndFrameExchangeSequence = 0x40001b1c;*/
lmacIsIdle = 0x40001b20; lmacIsIdle = 0x40001b20;
lmacIsLongFrame = 0x40001b24; lmacIsLongFrame = 0x40001b24;
/*lmacMSDUAged = 0x40001b28;*/ /*lmacMSDUAged = 0x40001b28;*/
@@ -1631,9 +1631,9 @@ hal_mac_set_txq_invalid = 0x40001d60;
hal_mac_txq_disable = 0x40001d64; hal_mac_txq_disable = 0x40001d64;
hal_mac_is_txq_enabled = 0x40001d68; hal_mac_is_txq_enabled = 0x40001d68;
hal_mac_get_txq_pmd = 0x40001d6c; hal_mac_get_txq_pmd = 0x40001d6c;
lmacDiscardFrameExchangeSequence = 0x40001d70; /*lmacDiscardFrameExchangeSequence = 0x40001d70;*/
lmacDisableTransmit = 0x40001d74; /*lmacDisableTransmit = 0x40001d74;*/
lmacProcessTxTimeout = 0x40001d78; /*lmacProcessTxTimeout = 0x40001d78;*/
/*lmacProcessTxSuccess = 0x40001d7c;*/ /*lmacProcessTxSuccess = 0x40001d7c;*/
lmacProcessCollision = 0x40001d80; lmacProcessCollision = 0x40001d80;
lmacProcessTxRtsError = 0x40001d84; lmacProcessTxRtsError = 0x40001d84;
@@ -1665,7 +1665,7 @@ mac_last_rxbuf_init = 0x40001de8;
hal_attenna_init = 0x40001dec; hal_attenna_init = 0x40001dec;
hal_timer_update_by_rtc = 0x40001df0; hal_timer_update_by_rtc = 0x40001df0;
hal_coex_pti_init = 0x40001df4; hal_coex_pti_init = 0x40001df4;
lmac_stop_hw_txq = 0x40001df8; /*lmac_stop_hw_txq = 0x40001df8;*/
ppDirectRecycleAmpdu = 0x40001dfc; ppDirectRecycleAmpdu = 0x40001dfc;
esp_wifi_internal_set_rts = 0x40001e00; esp_wifi_internal_set_rts = 0x40001e00;
esp_wifi_internal_get_rts = 0x40001e04; esp_wifi_internal_get_rts = 0x40001e04;
@@ -1844,9 +1844,9 @@ ic_ebuf_recycle_rx = 0x40001fa0;
ic_ebuf_recycle_tx = 0x40001fa4; ic_ebuf_recycle_tx = 0x40001fa4;
ic_reset_rx_ba = 0x40001fa8; ic_reset_rx_ba = 0x40001fa8;
ieee80211_align_eb = 0x40001fac; ieee80211_align_eb = 0x40001fac;
ieee80211_ampdu_reorder = 0x40001fb0; /*ieee80211_ampdu_reorder = 0x40001fb0;*/
ieee80211_ampdu_start_age_timer = 0x40001fb4; ieee80211_ampdu_start_age_timer = 0x40001fb4;
ieee80211_encap_esfbuf = 0x40001fb8; /*ieee80211_encap_esfbuf = 0x40001fb8;*/
ieee80211_is_tx_allowed = 0x40001fbc; ieee80211_is_tx_allowed = 0x40001fbc;
ieee80211_output_pending_eb = 0x40001fc0; ieee80211_output_pending_eb = 0x40001fc0;
/* ieee80211_output_process = 0x40001fc4; */ /* ieee80211_output_process = 0x40001fc4; */
@@ -1856,7 +1856,7 @@ wifi_get_macaddr = 0x40001fd0;
wifi_rf_phy_disable = 0x40001fd4; wifi_rf_phy_disable = 0x40001fd4;
wifi_rf_phy_enable = 0x40001fd8; wifi_rf_phy_enable = 0x40001fd8;
ic_ebuf_alloc = 0x40001fdc; ic_ebuf_alloc = 0x40001fdc;
ieee80211_classify = 0x40001fe0; /*ieee80211_classify = 0x40001fe0;*/
ieee80211_copy_eb_header = 0x40001fe4; ieee80211_copy_eb_header = 0x40001fe4;
ieee80211_recycle_cache_eb = 0x40001fe8; ieee80211_recycle_cache_eb = 0x40001fe8;
ieee80211_search_node = 0x40001fec; ieee80211_search_node = 0x40001fec;

View File

@@ -35,7 +35,7 @@ wDev_ProcessRxSucData = 0x400017f4;
ppProcTxDone = 0x40001804; ppProcTxDone = 0x40001804;
pm_tx_data_done_process = 0x40001808; pm_tx_data_done_process = 0x40001808;
ppMapWaitTxq = 0x40001810; ppMapWaitTxq = 0x40001810;
ieee80211_encap_esfbuf = 0x4000185c; /*ieee80211_encap_esfbuf = 0x4000185c;*/
/*sta_input = 0x40001870;*/ /*sta_input = 0x40001870;*/
ieee80211_crypto_decap = 0x4000189c; ieee80211_crypto_decap = 0x4000189c;
ieee80211_decap = 0x400018a0; ieee80211_decap = 0x400018a0;

View File

@@ -1516,7 +1516,7 @@ is_lmac_idle = 0x400015e8;
/*lmacAdjustTimestamp = 0x400015ec;*/ /*lmacAdjustTimestamp = 0x400015ec;*/
lmacDiscardAgedMSDU = 0x400015f0; lmacDiscardAgedMSDU = 0x400015f0;
/*lmacDiscardMSDU = 0x400015f4;*/ /*lmacDiscardMSDU = 0x400015f4;*/
lmacEndFrameExchangeSequence = 0x400015f8; /*lmacEndFrameExchangeSequence = 0x400015f8;*/
lmacIsIdle = 0x400015fc; lmacIsIdle = 0x400015fc;
lmacIsLongFrame = 0x40001600; lmacIsLongFrame = 0x40001600;
/*lmacMSDUAged = 0x40001604;*/ /*lmacMSDUAged = 0x40001604;*/
@@ -1717,7 +1717,7 @@ ic_ebuf_recycle_rx = 0x40001844;
ic_ebuf_recycle_tx = 0x40001848; ic_ebuf_recycle_tx = 0x40001848;
ic_reset_rx_ba = 0x4000184c; ic_reset_rx_ba = 0x4000184c;
ieee80211_align_eb = 0x40001850; ieee80211_align_eb = 0x40001850;
ieee80211_ampdu_reorder = 0x40001854; /*ieee80211_ampdu_reorder = 0x40001854;*/
ieee80211_ampdu_start_age_timer = 0x40001858; ieee80211_ampdu_start_age_timer = 0x40001858;
/*ieee80211_encap_esfbuf = 0x4000185c;*/ /*ieee80211_encap_esfbuf = 0x4000185c;*/
ieee80211_is_tx_allowed = 0x40001860; ieee80211_is_tx_allowed = 0x40001860;
@@ -1729,7 +1729,7 @@ wifi_get_macaddr = 0x40001874;
wifi_rf_phy_disable = 0x40001878; wifi_rf_phy_disable = 0x40001878;
wifi_rf_phy_enable = 0x4000187c; wifi_rf_phy_enable = 0x4000187c;
ic_ebuf_alloc = 0x40001880; ic_ebuf_alloc = 0x40001880;
ieee80211_classify = 0x40001884; /*ieee80211_classify = 0x40001884;*/
ieee80211_copy_eb_header = 0x40001888; ieee80211_copy_eb_header = 0x40001888;
ieee80211_recycle_cache_eb = 0x4000188c; ieee80211_recycle_cache_eb = 0x4000188c;
ieee80211_search_node = 0x40001890; ieee80211_search_node = 0x40001890;

View File

@@ -1816,7 +1816,7 @@ is_lmac_idle = 0x400052f8;
/*lmacAdjustTimestamp = 0x40005304;*/ /*lmacAdjustTimestamp = 0x40005304;*/
lmacDiscardAgedMSDU = 0x40005310; lmacDiscardAgedMSDU = 0x40005310;
/*lmacDiscardMSDU = 0x4000531c;*/ /*lmacDiscardMSDU = 0x4000531c;*/
lmacEndFrameExchangeSequence = 0x40005328; /*lmacEndFrameExchangeSequence = 0x40005328;*/
lmacIsIdle = 0x40005334; lmacIsIdle = 0x40005334;
lmacIsLongFrame = 0x40005340; lmacIsLongFrame = 0x40005340;
/*lmacMSDUAged = 0x4000534c;*/ /*lmacMSDUAged = 0x4000534c;*/
@@ -2024,7 +2024,7 @@ ic_ebuf_recycle_rx = 0x40005a24;
ic_ebuf_recycle_tx = 0x40005a30; ic_ebuf_recycle_tx = 0x40005a30;
ic_reset_rx_ba = 0x40005a3c; ic_reset_rx_ba = 0x40005a3c;
ieee80211_align_eb = 0x40005a48; ieee80211_align_eb = 0x40005a48;
ieee80211_ampdu_reorder = 0x40005a54; /* ieee80211_ampdu_reorder = 0x40005a54; */
ieee80211_ampdu_start_age_timer = 0x40005a60; ieee80211_ampdu_start_age_timer = 0x40005a60;
/* ieee80211_encap_esfbuf = 0x40005a6c; */ /* ieee80211_encap_esfbuf = 0x40005a6c; */
ieee80211_is_tx_allowed = 0x40005a78; ieee80211_is_tx_allowed = 0x40005a78;
@@ -2036,7 +2036,7 @@ wifi_get_macaddr = 0x40005ab4;
wifi_rf_phy_disable = 0x40005ac0; wifi_rf_phy_disable = 0x40005ac0;
wifi_rf_phy_enable = 0x40005acc; wifi_rf_phy_enable = 0x40005acc;
ic_ebuf_alloc = 0x40005ad8; ic_ebuf_alloc = 0x40005ad8;
ieee80211_classify = 0x40005ae4; /*ieee80211_classify = 0x40005ae4;*/
ieee80211_copy_eb_header = 0x40005af0; ieee80211_copy_eb_header = 0x40005af0;
ieee80211_recycle_cache_eb = 0x40005afc; ieee80211_recycle_cache_eb = 0x40005afc;
ieee80211_search_node = 0x40005b08; ieee80211_search_node = 0x40005b08;

View File

@@ -391,6 +391,7 @@ esp_err_t esp_wifi_restore(void);
* - ESP_OK: succeed * - ESP_OK: succeed
* - ESP_ERR_WIFI_NOT_INIT: WiFi is not initialized by esp_wifi_init * - ESP_ERR_WIFI_NOT_INIT: WiFi is not initialized by esp_wifi_init
* - ESP_ERR_WIFI_NOT_STARTED: WiFi is not started by esp_wifi_start * - ESP_ERR_WIFI_NOT_STARTED: WiFi is not started by esp_wifi_start
* - ESP_ERR_WIFI_MODE: WiFi mode error
* - ESP_ERR_WIFI_CONN: WiFi internal error, station or soft-AP control block wrong * - ESP_ERR_WIFI_CONN: WiFi internal error, station or soft-AP control block wrong
* - ESP_ERR_WIFI_SSID: SSID of AP which station connects is invalid * - ESP_ERR_WIFI_SSID: SSID of AP which station connects is invalid
*/ */
@@ -1457,9 +1458,10 @@ esp_err_t esp_wifi_sta_get_aid(uint16_t *aid);
esp_err_t esp_wifi_sta_get_negotiated_phymode(wifi_phy_mode_t *phymode); esp_err_t esp_wifi_sta_get_negotiated_phymode(wifi_phy_mode_t *phymode);
/** /**
* @brief Get the rssi info after station connected to AP * @brief Get the rssi information of AP to which the device is associated with
* *
* @attention This API should be called after station connected to AP. * @attention 1. This API should be called after station connected to AP.
* @attention 2. Use this API only in WIFI_MODE_STA or WIFI_MODE_APSTA mode.
* *
* @param rssi store the rssi info received from last beacon. * @param rssi store the rssi info received from last beacon.
* *

View File

@@ -153,8 +153,8 @@ static void wifi_scan(void)
ESP_ERROR_CHECK(esp_wifi_start()); ESP_ERROR_CHECK(esp_wifi_start());
esp_wifi_scan_start(NULL, true); esp_wifi_scan_start(NULL, true);
ESP_LOGI(TAG, "Max AP number ap_info can hold = %u", number); ESP_LOGI(TAG, "Max AP number ap_info can hold = %u", number);
ESP_ERROR_CHECK(esp_wifi_scan_get_ap_records(&number, ap_info));
ESP_ERROR_CHECK(esp_wifi_scan_get_ap_num(&ap_count)); ESP_ERROR_CHECK(esp_wifi_scan_get_ap_num(&ap_count));
ESP_ERROR_CHECK(esp_wifi_scan_get_ap_records(&number, ap_info));
ESP_LOGI(TAG, "Total APs scanned = %u, actual AP number ap_info holds = %u", ap_count, number); ESP_LOGI(TAG, "Total APs scanned = %u, actual AP number ap_info holds = %u", ap_count, number);
for (int i = 0; i < number; i++) { for (int i = 0; i < number; i++) {
ESP_LOGI(TAG, "SSID \t\t%s", ap_info[i].ssid); ESP_LOGI(TAG, "SSID \t\t%s", ap_info[i].ssid);