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.
This commit is contained in:
Li Shuai
2023-06-15 10:46:01 +08:00
committed by xuxiao
parent 395ad3edc0
commit 6a5d4e40d2
5 changed files with 5 additions and 5 deletions

View File

@@ -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;

View File

@@ -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;

View File

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

View File

@@ -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;