From b84d811684df1e2cfa3a3db607546872701efd83 Mon Sep 17 00:00:00 2001 From: Li Shuai Date: Thu, 15 Jun 2023 10:46:01 +0800 Subject: [PATCH] Wi-Fi/power save: fix the some mac issues of wifi power save Some APs are configured to hide the SSID, the length field of the SSID element in the Beacon frame is set to 0. This can cause incorrect parsing of the Beacon by the Wi-Fi MAC hardware. Some APs send two beacon frames with different BSSID in a TBTT cycle. After correctly parsing the beacon of the associated AP, it continue to receive the other beacon frame, which will cause the MAC to remain in a wait RX/TXING state, blocking the Wi-Fi go to sleep. --- components/esp_rom/esp32c2/ld/esp32c2.rom.ld | 2 +- components/esp_rom/esp32c3/ld/esp32c3.rom.ld | 2 +- components/esp_rom/esp32c6/ld/esp32c6.rom.pp.ld | 2 +- components/esp_rom/esp32s3/ld/esp32s3.rom.ld | 2 +- components/esp_wifi/lib | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/components/esp_rom/esp32c2/ld/esp32c2.rom.ld b/components/esp_rom/esp32c2/ld/esp32c2.rom.ld index 02431363b06..4159da653d9 100644 --- a/components/esp_rom/esp32c2/ld/esp32c2.rom.ld +++ b/components/esp_rom/esp32c2/ld/esp32c2.rom.ld @@ -1522,7 +1522,7 @@ hal_mac_is_low_rate_enabled = 0x40001af0; hal_mac_tx_get_blockack = 0x40001af4; hal_mac_tx_set_ppdu = 0x40001af8; ic_get_trc = 0x40001afc; -ic_mac_deinit = 0x40001b00; +/* ic_mac_deinit = 0x40001b00; */ ic_mac_init = 0x40001b04; ic_interface_enabled = 0x40001b08; is_lmac_idle = 0x40001b0c; diff --git a/components/esp_rom/esp32c3/ld/esp32c3.rom.ld b/components/esp_rom/esp32c3/ld/esp32c3.rom.ld index 70b1b78a92e..c60e1d10e3f 100644 --- a/components/esp_rom/esp32c3/ld/esp32c3.rom.ld +++ b/components/esp_rom/esp32c3/ld/esp32c3.rom.ld @@ -1589,7 +1589,7 @@ hal_mac_is_low_rate_enabled = 0x400015cc; hal_mac_tx_get_blockack = 0x400015d0; /* hal_mac_tx_set_ppdu = 0x400015d4;*/ ic_get_trc = 0x400015d8; -ic_mac_deinit = 0x400015dc; +/* ic_mac_deinit = 0x400015dc; */ ic_mac_init = 0x400015e0; ic_interface_enabled = 0x400015e4; is_lmac_idle = 0x400015e8; diff --git a/components/esp_rom/esp32c6/ld/esp32c6.rom.pp.ld b/components/esp_rom/esp32c6/ld/esp32c6.rom.pp.ld index dd374cd2bdf..1cf4abdb4a7 100644 --- a/components/esp_rom/esp32c6/ld/esp32c6.rom.pp.ld +++ b/components/esp_rom/esp32c6/ld/esp32c6.rom.pp.ld @@ -72,7 +72,7 @@ pm_is_waked = 0x40000c9c; /* pm_on_beacon_rx = 0x40000ca4; */ pm_on_data_rx = 0x40000ca8; //pm_on_tbtt = 0x40000cac; -pm_parse_beacon = 0x40000cb0; +/* pm_parse_beacon = 0x40000cb0; */ //pm_process_tim = 0x40000cb4; //pm_rx_beacon_process = 0x40000cb8; /* pm_rx_data_process = 0x40000cbc; */ diff --git a/components/esp_rom/esp32s3/ld/esp32s3.rom.ld b/components/esp_rom/esp32s3/ld/esp32s3.rom.ld index 36e3d6cd74b..1ac75c1937c 100644 --- a/components/esp_rom/esp32s3/ld/esp32s3.rom.ld +++ b/components/esp_rom/esp32s3/ld/esp32s3.rom.ld @@ -1899,7 +1899,7 @@ hal_mac_is_low_rate_enabled = 0x400052a4; hal_mac_tx_get_blockack = 0x400052b0; /* hal_mac_tx_set_ppdu = 0x400052bc;*/ ic_get_trc = 0x400052c8; -ic_mac_deinit = 0x400052d4; +/* ic_mac_deinit = 0x400052d4; */ ic_mac_init = 0x400052e0; ic_interface_enabled = 0x400052ec; is_lmac_idle = 0x400052f8; diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index b9d885520d2..e3e15870cb5 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit b9d885520d29081530681e45b256f63a09779efa +Subproject commit e3e15870cb5d199a59867f66dd236e0d9ff5a127