wifi: rtw89: fix rx filter after scan
In monitor mode we should be able to received all packets even if it's not destined to us. But after scan, the configuration was wrongly set, so we fix it. Signed-off-by: Po-Hao Huang <phhuang@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/20220916033811.13862-7-pkshih@realtek.com
This commit is contained in:
parent
eae672f386
commit
812825c2b2
|
@ -2599,6 +2599,7 @@ void rtw89_hw_scan_start(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif,
|
|||
{
|
||||
struct rtw89_vif *rtwvif = (struct rtw89_vif *)vif->drv_priv;
|
||||
struct cfg80211_scan_request *req = &scan_req->req;
|
||||
u32 rx_fltr = rtwdev->hal.rx_fltr;
|
||||
u8 mac_addr[ETH_ALEN];
|
||||
|
||||
rtwdev->scan_info.scanning_vif = vif;
|
||||
|
@ -2614,13 +2615,13 @@ void rtw89_hw_scan_start(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif,
|
|||
ether_addr_copy(mac_addr, vif->addr);
|
||||
rtw89_core_scan_start(rtwdev, rtwvif, mac_addr, true);
|
||||
|
||||
rtwdev->hal.rx_fltr &= ~B_AX_A_BCN_CHK_EN;
|
||||
rtwdev->hal.rx_fltr &= ~B_AX_A_BC;
|
||||
rtwdev->hal.rx_fltr &= ~B_AX_A_A1_MATCH;
|
||||
rx_fltr &= ~B_AX_A_BCN_CHK_EN;
|
||||
rx_fltr &= ~B_AX_A_BC;
|
||||
rx_fltr &= ~B_AX_A_A1_MATCH;
|
||||
rtw89_write32_mask(rtwdev,
|
||||
rtw89_mac_reg_by_idx(R_AX_RX_FLTR_OPT, RTW89_MAC_0),
|
||||
B_AX_RX_FLTR_CFG_MASK,
|
||||
rtwdev->hal.rx_fltr);
|
||||
rx_fltr);
|
||||
}
|
||||
|
||||
void rtw89_hw_scan_complete(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif,
|
||||
|
@ -2634,9 +2635,6 @@ void rtw89_hw_scan_complete(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif,
|
|||
if (!vif)
|
||||
return;
|
||||
|
||||
rtwdev->hal.rx_fltr |= B_AX_A_BCN_CHK_EN;
|
||||
rtwdev->hal.rx_fltr |= B_AX_A_BC;
|
||||
rtwdev->hal.rx_fltr |= B_AX_A_A1_MATCH;
|
||||
rtw89_write32_mask(rtwdev,
|
||||
rtw89_mac_reg_by_idx(R_AX_RX_FLTR_OPT, RTW89_MAC_0),
|
||||
B_AX_RX_FLTR_CFG_MASK,
|
||||
|
|
Loading…
Reference in New Issue