|
@@ -40,10 +40,10 @@
|
|
|
#define MAC_FILTERS (FIF_PROMISC_IN_BSS | \
|
|
|
FIF_ALLMULTI | \
|
|
|
FIF_FCSFAIL | \
|
|
|
- FIF_PLCPFAIL | \
|
|
|
FIF_CONTROL | \
|
|
|
FIF_OTHER_BSS | \
|
|
|
- FIF_BCN_PRBRESP_PROMISC)
|
|
|
+ FIF_BCN_PRBRESP_PROMISC | \
|
|
|
+ FIF_PSPOLL)
|
|
|
|
|
|
#define CHAN2GHZ(channel, freqency, chflags) { \
|
|
|
.band = IEEE80211_BAND_2GHZ, \
|
|
@@ -373,7 +373,7 @@ static int brcms_ops_config(struct ieee80211_hw *hw, u32 changed)
|
|
|
conf->listen_interval);
|
|
|
}
|
|
|
if (changed & IEEE80211_CONF_CHANGE_MONITOR)
|
|
|
- wiphy_err(wiphy, "%s: change monitor mode: %s (implement)\n",
|
|
|
+ wiphy_dbg(wiphy, "%s: change monitor mode: %s\n",
|
|
|
__func__, conf->flags & IEEE80211_CONF_MONITOR ?
|
|
|
"true" : "false");
|
|
|
if (changed & IEEE80211_CONF_CHANGE_PS)
|
|
@@ -550,29 +550,25 @@ brcms_ops_configure_filter(struct ieee80211_hw *hw,
|
|
|
|
|
|
changed_flags &= MAC_FILTERS;
|
|
|
*total_flags &= MAC_FILTERS;
|
|
|
+
|
|
|
if (changed_flags & FIF_PROMISC_IN_BSS)
|
|
|
- wiphy_err(wiphy, "FIF_PROMISC_IN_BSS\n");
|
|
|
+ wiphy_dbg(wiphy, "FIF_PROMISC_IN_BSS\n");
|
|
|
if (changed_flags & FIF_ALLMULTI)
|
|
|
- wiphy_err(wiphy, "FIF_ALLMULTI\n");
|
|
|
+ wiphy_dbg(wiphy, "FIF_ALLMULTI\n");
|
|
|
if (changed_flags & FIF_FCSFAIL)
|
|
|
- wiphy_err(wiphy, "FIF_FCSFAIL\n");
|
|
|
- if (changed_flags & FIF_PLCPFAIL)
|
|
|
- wiphy_err(wiphy, "FIF_PLCPFAIL\n");
|
|
|
+ wiphy_dbg(wiphy, "FIF_FCSFAIL\n");
|
|
|
if (changed_flags & FIF_CONTROL)
|
|
|
- wiphy_err(wiphy, "FIF_CONTROL\n");
|
|
|
+ wiphy_dbg(wiphy, "FIF_CONTROL\n");
|
|
|
if (changed_flags & FIF_OTHER_BSS)
|
|
|
- wiphy_err(wiphy, "FIF_OTHER_BSS\n");
|
|
|
- if (changed_flags & FIF_BCN_PRBRESP_PROMISC) {
|
|
|
- spin_lock_bh(&wl->lock);
|
|
|
- if (*total_flags & FIF_BCN_PRBRESP_PROMISC) {
|
|
|
- wl->pub->mac80211_state |= MAC80211_PROMISC_BCNS;
|
|
|
- brcms_c_mac_bcn_promisc_change(wl->wlc, 1);
|
|
|
- } else {
|
|
|
- brcms_c_mac_bcn_promisc_change(wl->wlc, 0);
|
|
|
- wl->pub->mac80211_state &= ~MAC80211_PROMISC_BCNS;
|
|
|
- }
|
|
|
- spin_unlock_bh(&wl->lock);
|
|
|
- }
|
|
|
+ wiphy_dbg(wiphy, "FIF_OTHER_BSS\n");
|
|
|
+ if (changed_flags & FIF_PSPOLL)
|
|
|
+ wiphy_dbg(wiphy, "FIF_PSPOLL\n");
|
|
|
+ if (changed_flags & FIF_BCN_PRBRESP_PROMISC)
|
|
|
+ wiphy_dbg(wiphy, "FIF_BCN_PRBRESP_PROMISC\n");
|
|
|
+
|
|
|
+ spin_lock_bh(&wl->lock);
|
|
|
+ brcms_c_mac_promisc(wl->wlc, *total_flags);
|
|
|
+ spin_unlock_bh(&wl->lock);
|
|
|
return;
|
|
|
}
|
|
|
|