rtw89: configure rx_filter according to FIF_PROBE_REQ

With this patch, we can receive probe_req and reply probe_resp, and STA
can find us.

Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220107034239.22002-2-pkshih@realtek.com
This commit is contained in:
Ping-Ke Shih 2022-01-07 11:42:21 +08:00 коммит произвёл Kalle Valo
Родитель 3ffbb5a8b8
Коммит 6629dc5697
1 изменённых файлов: 10 добавлений и 1 удалений

Просмотреть файл

@ -161,7 +161,7 @@ static void rtw89_ops_configure_filter(struct ieee80211_hw *hw,
rtw89_leave_ps_mode(rtwdev);
*new_flags &= FIF_ALLMULTI | FIF_OTHER_BSS | FIF_FCSFAIL |
FIF_BCN_PRBRESP_PROMISC;
FIF_BCN_PRBRESP_PROMISC | FIF_PROBE_REQ;
if (changed_flags & FIF_ALLMULTI) {
if (*new_flags & FIF_ALLMULTI)
@ -192,6 +192,15 @@ static void rtw89_ops_configure_filter(struct ieee80211_hw *hw,
rtwdev->hal.rx_fltr |= B_AX_A_A1_MATCH;
}
}
if (changed_flags & FIF_PROBE_REQ) {
if (*new_flags & FIF_PROBE_REQ) {
rtwdev->hal.rx_fltr &= ~B_AX_A_BC_CAM_MATCH;
rtwdev->hal.rx_fltr &= ~B_AX_A_UC_CAM_MATCH;
} else {
rtwdev->hal.rx_fltr |= B_AX_A_BC_CAM_MATCH;
rtwdev->hal.rx_fltr |= B_AX_A_UC_CAM_MATCH;
}
}
rtw89_write32_mask(rtwdev,
rtw89_mac_reg_by_idx(R_AX_RX_FLTR_OPT, RTW89_MAC_0),