wifi: rtw89: wow: add retry for ensuring packet are processed

Before entering WoWLAN mode, the driver must ensure that
all received packets have been processed to prevent packet
loss. Consequently, a retry mechanism has been implemented
to guarantee completion.

Signed-off-by: Chin-Yen Lee <timlee@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20260310080146.31113-10-pkshih@realtek.com
This commit is contained in:
Chin-Yen Lee 2026-03-10 16:01:42 +08:00 committed by Ping-Ke Shih
parent cf3cd3687d
commit 72dbc78594
2 changed files with 15 additions and 1 deletions

View File

@ -7183,7 +7183,7 @@ int rtw89_mac_ptk_drop_by_band_and_wait(struct rtw89_dev *rtwdev,
return ret;
}
int rtw89_mac_cpu_io_rx(struct rtw89_dev *rtwdev, bool wow_enable)
static int _rtw89_mac_cpu_io_rx(struct rtw89_dev *rtwdev, bool wow_enable)
{
struct rtw89_mac_h2c_info h2c_info = {};
struct rtw89_mac_c2h_info c2h_info = {};
@ -7206,6 +7206,19 @@ int rtw89_mac_cpu_io_rx(struct rtw89_dev *rtwdev, bool wow_enable)
return ret;
}
int rtw89_mac_cpu_io_rx(struct rtw89_dev *rtwdev, bool wow_enable)
{
int i, ret;
for (i = 0; i < CPU_IO_RX_RETRY_CNT; i++) {
ret = _rtw89_mac_cpu_io_rx(rtwdev, wow_enable);
if (!ret)
return 0;
}
return ret;
}
static int rtw89_wow_config_mac_ax(struct rtw89_dev *rtwdev, bool enable_wow)
{
const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def;

View File

@ -17,6 +17,7 @@
#define BSSID_CAM_ENT_SIZE 0x08
#define HFC_PAGE_UNIT 64
#define RPWM_TRY_CNT 3
#define CPU_IO_RX_RETRY_CNT 3
enum rtw89_mac_hwmod_sel {
RTW89_DMAC_SEL = 0,