You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
3.1 KiB
84 lines
3.1 KiB
From bf7a282d56a0765eea68faca8d743f1108fbce66 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= <ihuguet@redhat.com>
|
|
Date: Wed, 24 May 2023 15:00:36 +0200
|
|
Subject: [PATCH 105/142] wifi: rtw89: coex: Packet traffic arbitration
|
|
hardware owner monitor
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Bugzilla: https://bugzilla.redhat.com/2207499
|
|
|
|
commit ae4e1adbb1be65cadde793239a39fa947a3ff828
|
|
Author: Ching-Te Ku <ku920601@realtek.com>
|
|
Date: Fri Jan 6 20:08:42 2023 +0800
|
|
|
|
wifi: rtw89: coex: Packet traffic arbitration hardware owner monitor
|
|
|
|
Because the difference of the hardware design, RTL8852C can not get the
|
|
PTA owner by the same method with RTL8852B, RTL8852A. Modify the get owner
|
|
API and related logic.
|
|
|
|
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/20230106120844.17441-6-pkshih@realtek.com
|
|
|
|
Signed-off-by: Íñigo Huguet <ihuguet@redhat.com>
|
|
---
|
|
drivers/net/wireless/realtek/rtw89/coex.c | 7 ++-----
|
|
drivers/net/wireless/realtek/rtw89/mac.c | 11 +++++++++--
|
|
2 files changed, 11 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/drivers/net/wireless/realtek/rtw89/coex.c b/drivers/net/wireless/realtek/rtw89/coex.c
|
|
index 03872ac8cced0..ec31dd0751cee 100644
|
|
--- a/drivers/net/wireless/realtek/rtw89/coex.c
|
|
+++ b/drivers/net/wireless/realtek/rtw89/coex.c
|
|
@@ -4873,7 +4873,7 @@ void rtw89_btc_ntfy_init(struct rtw89_dev *rtwdev, u8 mode)
|
|
_write_scbd(rtwdev,
|
|
BTC_WSCB_ACTIVE | BTC_WSCB_ON | BTC_WSCB_BTLOG, true);
|
|
_update_bt_scbd(rtwdev, true);
|
|
- if (rtw89_mac_get_ctrl_path(rtwdev) && chip->chip_id == RTL8852A) {
|
|
+ if (rtw89_mac_get_ctrl_path(rtwdev)) {
|
|
rtw89_debug(rtwdev, RTW89_DBG_BTC,
|
|
"[BTC], %s(): PTA owner warning!!\n",
|
|
__func__);
|
|
@@ -7082,10 +7082,7 @@ static void _show_mreg(struct rtw89_dev *rtwdev, struct seq_file *m)
|
|
|
|
/* To avoid I/O if WL LPS or power-off */
|
|
if (!wl->status.map.lps && !wl->status.map.rf_off) {
|
|
- if (chip->chip_id == RTL8852A)
|
|
- btc->dm.pta_owner = rtw89_mac_get_ctrl_path(rtwdev);
|
|
- else if (chip->chip_id == RTL8852C)
|
|
- btc->dm.pta_owner = 0;
|
|
+ btc->dm.pta_owner = rtw89_mac_get_ctrl_path(rtwdev);
|
|
|
|
_get_gnt(rtwdev, &gnt_cfg);
|
|
gnt = gnt_cfg.band[0];
|
|
diff --git a/drivers/net/wireless/realtek/rtw89/mac.c b/drivers/net/wireless/realtek/rtw89/mac.c
|
|
index cf9a0a3120a79..5ab0590485e0d 100644
|
|
--- a/drivers/net/wireless/realtek/rtw89/mac.c
|
|
+++ b/drivers/net/wireless/realtek/rtw89/mac.c
|
|
@@ -4865,9 +4865,16 @@ EXPORT_SYMBOL(rtw89_mac_cfg_ctrl_path_v1);
|
|
|
|
bool rtw89_mac_get_ctrl_path(struct rtw89_dev *rtwdev)
|
|
{
|
|
- u8 val = rtw89_read8(rtwdev, R_AX_SYS_SDIO_CTRL + 3);
|
|
+ const struct rtw89_chip_info *chip = rtwdev->chip;
|
|
+ u8 val = 0;
|
|
+
|
|
+ if (chip->chip_id == RTL8852C)
|
|
+ return false;
|
|
+ else if (chip->chip_id == RTL8852A || chip->chip_id == RTL8852B)
|
|
+ val = rtw89_read8_mask(rtwdev, R_AX_SYS_SDIO_CTRL + 3,
|
|
+ B_AX_LTE_MUX_CTRL_PATH >> 24);
|
|
|
|
- return FIELD_GET(B_AX_LTE_MUX_CTRL_PATH >> 24, val);
|
|
+ return !!val;
|
|
}
|
|
|
|
u16 rtw89_mac_get_plt_cnt(struct rtw89_dev *rtwdev, u8 band)
|
|
--
|
|
2.13.6
|
|
|