wifi: rtw89: 8852c: enable the interference cancellation of MU-MIMO on 6GHz
authorPing-Ke Shih <pkshih@realtek.com>
Thu, 8 Sep 2022 05:12:50 +0000 (13:12 +0800)
committerKalle Valo <kvalo@kernel.org>
Mon, 12 Sep 2022 11:52:32 +0000 (14:52 +0300)
Enable MU-MIMO interference cancellation (MUIC) to yield expected
performance of receiving MU-MIMO packets on 6GHz.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220908051257.25353-3-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/reg.h
drivers/net/wireless/realtek/rtw89/rtw8852c.c

index 6f29f3c971aba649d16535f3e3bdbec9f83a1acc..54cf725d5d0a7c9c42ada833349ddd33ea812991 100644 (file)
 #define R_S1_ADDCK 0x3E00
 #define B_S1_ADDCK_I GENMASK(9, 0)
 #define B_S1_ADDCK_Q GENMASK(19, 10)
+#define R_MUIC 0x40F8
+#define B_MUIC_EN BIT(0)
 #define R_DCFO 0x4264
 #define B_DCFO GENMASK(1, 0)
 #define R_SEG0CSI 0x42AC
index 6b2056f07ac3e432eea8220a9721bd3045d20c94..75ba40430bfe53edefc666a7e54716ce3c8decb9 100644 (file)
@@ -1791,6 +1791,11 @@ static void rtw8852c_set_channel_bb(struct rtw89_dev *rtwdev,
                }
        }
 
+       if (chan->band_type == RTW89_BAND_6G)
+               rtw89_phy_write32_set(rtwdev, R_MUIC, B_MUIC_EN);
+       else
+               rtw89_phy_write32_clr(rtwdev, R_MUIC, B_MUIC_EN);
+
        rtw8852c_bb_reset_all(rtwdev, phy_idx);
 }