diff mbox series

[7/7] rtw88: coex: fix A2DP stutters while WL busy + WL scan

Message ID 20210319054218.3319-8-pkshih@realtek.com
State New
Headers show
Series [1/7] rtw88: add flush hci support | expand

Commit Message

Ping-Ke Shih March 19, 2021, 5:42 a.m. UTC
From: Ching-Te Ku <ku920601@realtek.com>

While WL scan, WL is more high priority than BT. The packets from AP
will be a big interference to A2DP. It will lead to A2DP stutters. Stop
answering CTS to AP to decrease AP's packets Tx while WL scan + WL busy.
Enable BT AFH feature to make BT leave away from WL channel.

Desired BT firmware BT-COEX version: 0x1c
Desired WL firmware version: 9.9.x

Signed-off-by: Ching-Te Ku <ku920601@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
---
 drivers/net/wireless/realtek/rtw88/coex.c     | 8 +++++---
 drivers/net/wireless/realtek/rtw88/rtw8822c.c | 2 +-
 2 files changed, 6 insertions(+), 4 deletions(-)

Comments

Kalle Valo April 11, 2021, 9:28 a.m. UTC | #1
Ping-Ke Shih <pkshih@realtek.com> wrote:

> From: Ching-Te Ku <ku920601@realtek.com>

> 

> While WL scan, WL is more high priority than BT. The packets from AP

> will be a big interference to A2DP. It will lead to A2DP stutters. Stop

> answering CTS to AP to decrease AP's packets Tx while WL scan + WL busy.

> Enable BT AFH feature to make BT leave away from WL channel.

> 

> Desired BT firmware BT-COEX version: 0x1c

> Desired WL firmware version: 9.9.x

> 

> Signed-off-by: Ching-Te Ku <ku920601@realtek.com>

> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>


Patch applied to wireless-drivers-next.git, thanks.

4517f811258d rtw88: coex: fix A2DP stutters while WL busy + WL scan

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/20210319054218.3319-8-pkshih@realtek.com/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
diff mbox series

Patch

diff --git a/drivers/net/wireless/realtek/rtw88/coex.c b/drivers/net/wireless/realtek/rtw88/coex.c
index 7eee2c5ecb11..cedbf3825848 100644
--- a/drivers/net/wireless/realtek/rtw88/coex.c
+++ b/drivers/net/wireless/realtek/rtw88/coex.c
@@ -787,7 +787,6 @@  static void rtw_coex_update_wl_ch_info(struct rtw_dev *rtwdev, u8 type)
 {
 	struct rtw_chip_info *chip = rtwdev->chip;
 	struct rtw_coex_dm *coex_dm = &rtwdev->coex.dm;
-	struct rtw_efuse *efuse = &rtwdev->efuse;
 	u8 link = 0;
 	u8 center_chan = 0;
 	u8 bw;
@@ -798,7 +797,7 @@  static void rtw_coex_update_wl_ch_info(struct rtw_dev *rtwdev, u8 type)
 	if (type != COEX_MEDIA_DISCONNECT)
 		center_chan = rtwdev->hal.current_channel;
 
-	if (center_chan == 0 || (efuse->share_ant && center_chan <= 14)) {
+	if (center_chan == 0) {
 		link = 0;
 		center_chan = 0;
 		bw = 0;
@@ -2325,8 +2324,11 @@  static void rtw_coex_action_wl_linkscan(struct rtw_dev *rtwdev)
 	if (efuse->share_ant) { /* Shared-Ant */
 		if (coex_stat->bt_a2dp_exist) {
 			slot_type = TDMA_4SLOT;
-			table_case = 9;
 			tdma_case = 11;
+			if (coex_stat->wl_gl_busy)
+				table_case = 26;
+			else
+				table_case = 9;
 		} else {
 			table_case = 9;
 			tdma_case = 7;
diff --git a/drivers/net/wireless/realtek/rtw88/rtw8822c.c b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
index 8ed70f468cda..9f05c60c8a03 100644
--- a/drivers/net/wireless/realtek/rtw88/rtw8822c.c
+++ b/drivers/net/wireless/realtek/rtw88/rtw8822c.c
@@ -4520,7 +4520,7 @@  struct rtw_chip_info rtw8822c_hw_spec = {
 	.wowlan_stub = &rtw_wowlan_stub_8822c,
 	.max_sched_scan_ssids = 4,
 #endif
-	.coex_para_ver = 0x201029,
+	.coex_para_ver = 0x2103181c,
 	.bt_desired_ver = 0x1c,
 	.scbd_support = true,
 	.new_scbd10_def = true,