rtw89: coex: set EN bit to PLT register
authorPing-Ke Shih <pkshih@realtek.com>
Tue, 8 Feb 2022 08:27:51 +0000 (16:27 +0800)
committerKalle Valo <kvalo@kernel.org>
Thu, 10 Feb 2022 08:45:18 +0000 (10:45 +0200)
B_AX_PLT_EN is to enable polluted mechanism. If it is enabled and
gnt_bt = 1 while wlan TX, B_AX_BT_PLT_PKT_CNT counter will increase,
but TX counter to BB will not. Without this bit BTCoex mechanism might
have some problems.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220208082751.43553-1-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/mac.c

index 3cd208d05c7c064d39f9ca2917f98fdd5363052d..031e6e99d4bed6e3bf2ded5c00b52bc93df16586 100644 (file)
@@ -3442,7 +3442,7 @@ int rtw89_mac_cfg_gnt(struct rtw89_dev *rtwdev,
 int rtw89_mac_cfg_plt(struct rtw89_dev *rtwdev, struct rtw89_mac_ax_plt *plt)
 {
        u32 reg;
-       u8 val;
+       u16 val;
        int ret;
 
        ret = rtw89_mac_check_mac_en(rtwdev, plt->band, RTW89_CMAC_SEL);
@@ -3457,8 +3457,9 @@ int rtw89_mac_cfg_plt(struct rtw89_dev *rtwdev, struct rtw89_mac_ax_plt *plt)
              (plt->rx & RTW89_MAC_AX_PLT_LTE_RX ? B_AX_RX_PLT_GNT_LTE_RX : 0) |
              (plt->rx & RTW89_MAC_AX_PLT_GNT_BT_TX ? B_AX_RX_PLT_GNT_BT_TX : 0) |
              (plt->rx & RTW89_MAC_AX_PLT_GNT_BT_RX ? B_AX_RX_PLT_GNT_BT_RX : 0) |
-             (plt->rx & RTW89_MAC_AX_PLT_GNT_WL ? B_AX_RX_PLT_GNT_WL : 0);
-       rtw89_write8(rtwdev, reg, val);
+             (plt->rx & RTW89_MAC_AX_PLT_GNT_WL ? B_AX_RX_PLT_GNT_WL : 0) |
+             B_AX_PLT_EN;
+       rtw89_write16(rtwdev, reg, val);
 
        return 0;
 }