rtw89: coex: Add case for scan offload
authorChing-Te Ku <ku920601@realtek.com>
Fri, 1 Apr 2022 05:50:42 +0000 (13:50 +0800)
committerKalle Valo <kvalo@kernel.org>
Wed, 6 Apr 2022 08:56:33 +0000 (11:56 +0300)
Turn off coexistence driver control, let firmware can control the
traffic during scan. This prevents potential unexpected behavior of
the BT driver.

Signed-off-by: Ching-Te Ku <ku920601@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220401055043.12512-4-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/coex.c

index 6845839..3d5664c 100644 (file)
@@ -3068,7 +3068,17 @@ static void _action_wl_scan(struct rtw89_dev *rtwdev)
        struct rtw89_btc_wl_info *wl = &btc->cx.wl;
        struct rtw89_btc_wl_dbcc_info *wl_dinfo = &wl->dbcc_info;
 
-       if (rtwdev->dbcc_en) {
+       if (RTW89_CHK_FW_FEATURE(SCAN_OFFLOAD, &rtwdev->fw)) {
+               _set_ant(rtwdev, NM_EXEC, BTC_PHY_ALL, BTC_ANT_W25G);
+               if (btc->mdinfo.ant.type == BTC_ANT_SHARED)
+                       _set_policy(rtwdev, BTC_CXP_OFFE_DEF,
+                                   BTC_RSN_NTFY_SCAN_START);
+               else
+                       _set_policy(rtwdev, BTC_CXP_OFF_EQ0,
+                                   BTC_RSN_NTFY_SCAN_START);
+
+               rtw89_debug(rtwdev, RTW89_DBG_BTC, "[BTC], Scan offload!\n");
+       } else if (rtwdev->dbcc_en) {
                if (wl_dinfo->real_band[RTW89_PHY_0] != RTW89_BAND_2G &&
                    wl_dinfo->real_band[RTW89_PHY_1] != RTW89_BAND_2G)
                        _action_wl_5g(rtwdev);