OSDN Git Service

rtw88: coex: set 4 slot TDMA for BT link and WL busy
authorChing-Te Ku <ku920601@realtek.com>
Tue, 12 Jan 2021 02:11:35 +0000 (10:11 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 14 Jan 2021 17:26:49 +0000 (19:26 +0200)
To protect both of WL/BT performance while BT is under re-link state.
4-slot mode TDMA can make the re-link more sensitive and mitigate the WL
throughput drop.

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

index 24530ca..ea2be1e 100644 (file)
@@ -1607,6 +1607,7 @@ static void rtw_coex_action_bt_relink(struct rtw_dev *rtwdev)
        struct rtw_efuse *efuse = &rtwdev->efuse;
        struct rtw_chip_info *chip = rtwdev->chip;
        u8 table_case, tdma_case;
+       u32 slot_type = 0;
 
        rtw_dbg(rtwdev, RTW_DBG_COEX, "[BTCoex], %s()\n", __func__);
 
@@ -1618,6 +1619,7 @@ static void rtw_coex_action_bt_relink(struct rtw_dev *rtwdev)
                        table_case = 26;
                        if (coex_stat->bt_hid_exist &&
                            coex_stat->bt_profile_num == 1) {
+                               slot_type = TDMA_4SLOT;
                                tdma_case = 20;
                        } else {
                                tdma_case = 20;
@@ -1635,7 +1637,7 @@ static void rtw_coex_action_bt_relink(struct rtw_dev *rtwdev)
        }
 
        rtw_coex_table(rtwdev, false, table_case);
-       rtw_coex_tdma(rtwdev, false, tdma_case);
+       rtw_coex_tdma(rtwdev, false, tdma_case | slot_type);
 }
 
 static void rtw_coex_action_bt_idle(struct rtw_dev *rtwdev)