diff options
Diffstat (limited to 'drivers/net/wireless/ath9k')
-rw-r--r-- | drivers/net/wireless/ath9k/mac.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath9k/recv.c | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath9k/mac.h b/drivers/net/wireless/ath9k/mac.h index fbd2d6ad2a5..37e3948ddc2 100644 --- a/drivers/net/wireless/ath9k/mac.h +++ b/drivers/net/wireless/ath9k/mac.h @@ -570,6 +570,7 @@ enum ath9k_rx_filter { ATH9K_RX_FILTER_MYBEACON = 0x00000200, ATH9K_RX_FILTER_PSPOLL = 0x00004000, ATH9K_RX_FILTER_PHYRADAR = 0x00002000, + ATH9K_RX_FILTER_MCAST_BCAST_ALL = 0x00008000, }; #define ATH9K_RATESERIES_RTS_CTS 0x0001 diff --git a/drivers/net/wireless/ath9k/recv.c b/drivers/net/wireless/ath9k/recv.c index a9a55df500a..3df5c782436 100644 --- a/drivers/net/wireless/ath9k/recv.c +++ b/drivers/net/wireless/ath9k/recv.c @@ -407,6 +407,14 @@ u32 ath_calcrxfilter(struct ath_softc *sc) if (sc->sc_ah->opmode == NL80211_IFTYPE_AP) rfilt |= ATH9K_RX_FILTER_PSPOLL; + if (sc->sec_wiphy) { + /* TODO: only needed if more than one BSSID is in use in + * station/adhoc mode */ + /* TODO: for older chips, may need to add ATH9K_RX_FILTER_PROM + */ + rfilt |= ATH9K_RX_FILTER_MCAST_BCAST_ALL; + } + return rfilt; #undef RX_FILTER_PRESERVE |