mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 09:09:55 -04:00
wifi: rtl8xxxu: Clean up filter configuration
When RCR_CHECK_BSSID_MATCH is set in AP mode, we don't receive any data frames. Rearrange RCR bits to filter flags to match other realtek drivers and remove RCR_CHECK_BSSID_MATCH in AP mode. Signed-off-by: Martin Kaistra <martin.kaistra@linutronix.de> Reviewed-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20230428150833.218605-15-martin.kaistra@linutronix.de
This commit is contained in:
committed by
Kalle Valo
parent
89819a6511
commit
66dcb57441
@@ -6689,22 +6689,22 @@ static void rtl8xxxu_configure_filter(struct ieee80211_hw *hw,
|
||||
*/
|
||||
|
||||
if (*total_flags & FIF_BCN_PRBRESP_PROMISC)
|
||||
rcr &= ~RCR_CHECK_BSSID_BEACON;
|
||||
rcr &= ~(RCR_CHECK_BSSID_BEACON | RCR_CHECK_BSSID_MATCH);
|
||||
else
|
||||
rcr |= RCR_CHECK_BSSID_BEACON;
|
||||
rcr |= RCR_CHECK_BSSID_BEACON | RCR_CHECK_BSSID_MATCH;
|
||||
|
||||
if (priv->vif && priv->vif->type == NL80211_IFTYPE_AP)
|
||||
rcr &= ~RCR_CHECK_BSSID_MATCH;
|
||||
|
||||
if (*total_flags & FIF_CONTROL)
|
||||
rcr |= RCR_ACCEPT_CTRL_FRAME;
|
||||
else
|
||||
rcr &= ~RCR_ACCEPT_CTRL_FRAME;
|
||||
|
||||
if (*total_flags & FIF_OTHER_BSS) {
|
||||
if (*total_flags & FIF_OTHER_BSS)
|
||||
rcr |= RCR_ACCEPT_AP;
|
||||
rcr &= ~RCR_CHECK_BSSID_MATCH;
|
||||
} else {
|
||||
else
|
||||
rcr &= ~RCR_ACCEPT_AP;
|
||||
rcr |= RCR_CHECK_BSSID_MATCH;
|
||||
}
|
||||
|
||||
if (*total_flags & FIF_PSPOLL)
|
||||
rcr |= RCR_ACCEPT_PM;
|
||||
|
||||
Reference in New Issue
Block a user