rtw89: ps: fine tune polling interval while changing low power mode
authorPing-Ke Shih <pkshih@realtek.com>
Tue, 3 May 2022 11:59:57 +0000 (19:59 +0800)
committerKalle Valo <kvalo@kernel.org>
Wed, 4 May 2022 05:32:04 +0000 (08:32 +0300)
By experiments, it spends ~45/1090~2480us to enter/leave low power mode,
so the old polling interval 1000us can waste time. Use smaller polling
interval depends on experimental results to reduce the time to transition
state.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220503120001.79272-5-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/mac.c

index 05b9484..07f6634 100644 (file)
@@ -1050,6 +1050,7 @@ static int rtw89_mac_check_cpwm_state(struct rtw89_dev *rtwdev,
 void rtw89_mac_power_mode_change(struct rtw89_dev *rtwdev, bool enter)
 {
        enum rtw89_rpwm_req_pwr_state state;
+       unsigned long delay = enter ? 10 : 150;
        int ret;
 
        if (enter)
@@ -1059,7 +1060,7 @@ void rtw89_mac_power_mode_change(struct rtw89_dev *rtwdev, bool enter)
 
        rtw89_mac_send_rpwm(rtwdev, state, false);
        ret = read_poll_timeout_atomic(rtw89_mac_check_cpwm_state, ret, !ret,
-                                      1000, 15000, false, rtwdev, state);
+                                      delay, 15000, false, rtwdev, state);
        if (ret)
                rtw89_err(rtwdev, "firmware failed to ack for %s ps mode\n",
                          enter ? "entering" : "leaving");