wifi: rtw89: differentiate narrow_bw_ru_dis setting according to chip gen
When there are OBSS that cannot interpret 26-tone RU transmissions, we should disable 26-tone RU HE TB PPDU transmissions. So, add registers accordingly. Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://msgid.link/20240209065229.34515-8-pkshih@realtek.com
This commit is contained in:
parent
505b57d08f
commit
49ea98235a
@ -4619,6 +4619,7 @@ void rtw89_mac_set_he_obss_narrow_bw_ru(struct rtw89_dev *rtwdev,
|
||||
struct ieee80211_vif *vif)
|
||||
{
|
||||
struct rtw89_vif *rtwvif = (struct rtw89_vif *)vif->drv_priv;
|
||||
const struct rtw89_mac_gen_def *mac = rtwdev->chip->mac_def;
|
||||
struct ieee80211_hw *hw = rtwdev->hw;
|
||||
bool tolerated = true;
|
||||
u32 reg;
|
||||
@ -4633,11 +4634,12 @@ void rtw89_mac_set_he_obss_narrow_bw_ru(struct rtw89_dev *rtwdev,
|
||||
rtw89_mac_check_he_obss_narrow_bw_ru_iter,
|
||||
&tolerated);
|
||||
|
||||
reg = rtw89_mac_reg_by_idx(rtwdev, R_AX_RXTRIG_TEST_USER_2, rtwvif->mac_idx);
|
||||
reg = rtw89_mac_reg_by_idx(rtwdev, mac->narrow_bw_ru_dis.addr,
|
||||
rtwvif->mac_idx);
|
||||
if (tolerated)
|
||||
rtw89_write32_clr(rtwdev, reg, B_AX_RXTRIG_RU26_DIS);
|
||||
rtw89_write32_clr(rtwdev, reg, mac->narrow_bw_ru_dis.mask);
|
||||
else
|
||||
rtw89_write32_set(rtwdev, reg, B_AX_RXTRIG_RU26_DIS);
|
||||
rtw89_write32_set(rtwdev, reg, mac->narrow_bw_ru_dis.mask);
|
||||
}
|
||||
|
||||
void rtw89_mac_stop_ap(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif)
|
||||
@ -6206,6 +6208,10 @@ const struct rtw89_mac_gen_def rtw89_mac_gen_ax = {
|
||||
.mask = B_AX_BFMEE_HT_NDPA_EN | B_AX_BFMEE_VHT_NDPA_EN |
|
||||
B_AX_BFMEE_HE_NDPA_EN,
|
||||
},
|
||||
.narrow_bw_ru_dis = {
|
||||
.addr = R_AX_RXTRIG_TEST_USER_2,
|
||||
.mask = B_AX_RXTRIG_RU26_DIS,
|
||||
},
|
||||
|
||||
.check_mac_en = rtw89_mac_check_mac_en_ax,
|
||||
.sys_init = sys_init_ax,
|
||||
|
@ -898,6 +898,7 @@ struct rtw89_mac_gen_def {
|
||||
|
||||
struct rtw89_reg_def muedca_ctrl;
|
||||
struct rtw89_reg_def bfee_ctrl;
|
||||
struct rtw89_reg_def narrow_bw_ru_dis;
|
||||
|
||||
int (*check_mac_en)(struct rtw89_dev *rtwdev, u8 band,
|
||||
enum rtw89_mac_hwmod_sel sel);
|
||||
|
@ -2400,6 +2400,10 @@ const struct rtw89_mac_gen_def rtw89_mac_gen_be = {
|
||||
.mask = B_BE_BFMEE_HT_NDPA_EN | B_BE_BFMEE_VHT_NDPA_EN |
|
||||
B_BE_BFMEE_HE_NDPA_EN | B_BE_BFMEE_EHT_NDPA_EN,
|
||||
},
|
||||
.narrow_bw_ru_dis = {
|
||||
.addr = R_BE_RXTRIG_TEST_USER_2,
|
||||
.mask = B_BE_RXTRIG_RU26_DIS,
|
||||
},
|
||||
|
||||
.check_mac_en = rtw89_mac_check_mac_en_be,
|
||||
.sys_init = sys_init_be,
|
||||
|
Loading…
x
Reference in New Issue
Block a user