|
@@ -375,14 +375,15 @@ u32 ath_calcrxfilter(struct ath_softc *sc)
|
|
|
if (sc->rx.rxfilter & FIF_CONTROL)
|
|
|
rfilt |= ATH9K_RX_FILTER_CONTROL;
|
|
|
|
|
|
- if (sc->sc_ah->opmode == NL80211_IFTYPE_STATION ||
|
|
|
- sc->sc_ah->opmode == NL80211_IFTYPE_ADHOC)
|
|
|
+ if ((sc->sc_ah->opmode == NL80211_IFTYPE_STATION) &&
|
|
|
+ !(sc->rx.rxfilter & FIF_BCN_PRBRESP_PROMISC))
|
|
|
+ rfilt |= ATH9K_RX_FILTER_MYBEACON;
|
|
|
+ else
|
|
|
rfilt |= ATH9K_RX_FILTER_BEACON;
|
|
|
|
|
|
- /* If in HOSTAP mode, want to enable reception of PSPOLL frames
|
|
|
- & beacon frames */
|
|
|
+ /* If in HOSTAP mode, want to enable reception of PSPOLL frames */
|
|
|
if (sc->sc_ah->opmode == NL80211_IFTYPE_AP)
|
|
|
- rfilt |= (ATH9K_RX_FILTER_BEACON | ATH9K_RX_FILTER_PSPOLL);
|
|
|
+ rfilt |= ATH9K_RX_FILTER_PSPOLL;
|
|
|
|
|
|
return rfilt;
|
|
|
|