diff mbox series

[4/4] wifi: rtw89: wow: add scan interval option for net-detect

Message ID 20240826090439.17242-5-pkshih@realtek.com (mailing list archive)
State Accepted
Delegated to: Ping-Ke Shih
Headers show
Series wifi: rtw89: wow: support WOWLAN net-detect for 8922a mainly | expand

Commit Message

Ping-Ke Shih Aug. 26, 2024, 9:04 a.m. UTC
From: Chin-Yen Lee <timlee@realtek.com>

The scan interval option is the period in unit of second for WoWLAN
firmware to do each scan. We get the option from cfg80211 and practice it.
If the interval is too short for firmware to finish one scan, the firmware
will start next scan immediately after finishing one and the WiFi chip
could never enter idle mode to reduce power consumption.

Signed-off-by: Chin-Yen Lee <timlee@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtw89/wow.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/drivers/net/wireless/realtek/rtw89/wow.c b/drivers/net/wireless/realtek/rtw89/wow.c
index 0f0f4beec4d9..86e24e07780d 100644
--- a/drivers/net/wireless/realtek/rtw89/wow.c
+++ b/drivers/net/wireless/realtek/rtw89/wow.c
@@ -1438,6 +1438,7 @@  static int rtw89_pno_scan_offload(struct rtw89_dev *rtwdev, bool enable)
 	struct rtw89_wow_param *rtw_wow = &rtwdev->wow;
 	struct ieee80211_vif *wow_vif = rtw_wow->wow_vif;
 	struct rtw89_vif *rtwvif = (struct rtw89_vif *)wow_vif->drv_priv;
+	int interval = rtw_wow->nd_config->scan_plans[0].interval;
 	struct rtw89_scan_option opt = {};
 	int ret;
 
@@ -1457,7 +1458,7 @@  static int rtw89_pno_scan_offload(struct rtw89_dev *rtwdev, bool enable)
 
 	opt.enable = enable;
 	opt.repeat = RTW89_SCAN_NORMAL;
-	opt.norm_pd = 10; /* in unit of 100ms */
+	opt.norm_pd = max(interval, 1) * 10; /* in unit of 100ms */
 	opt.delay = max(rtw_wow->nd_config->delay, 1);
 
 	if (rtwdev->chip->chip_gen == RTW89_CHIP_BE) {