aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChing-Te Ku <ku920601@realtek.com>2021-01-12 10:11:35 +0800
committerKalle Valo <kvalo@codeaurora.org>2021-01-14 19:26:49 +0200
commit5f782c11569d5703c8ded6913481b55c254512f2 (patch)
tree28e24a73f2e48012f891bf9f907b7ba7480b50e9
parentrtw88: 8821c: apply CCK PD level which calculates from dynamic mechanism (diff)
downloadlinux-dev-5f782c11569d5703c8ded6913481b55c254512f2.tar.xz
linux-dev-5f782c11569d5703c8ded6913481b55c254512f2.zip
rtw88: coex: set 4 slot TDMA for BT link and WL busy
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
-rw-r--r--drivers/net/wireless/realtek/rtw88/coex.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/wireless/realtek/rtw88/coex.c b/drivers/net/wireless/realtek/rtw88/coex.c
index 24530cafcba7..ea2be1e25065 100644
--- a/drivers/net/wireless/realtek/rtw88/coex.c
+++ b/drivers/net/wireless/realtek/rtw88/coex.c
@@ -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)