diff options
author | adrian <adrian@FreeBSD.org> | 2011-03-26 10:52:37 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2011-03-26 10:52:37 +0000 |
commit | 4f32c1a13f363162f975d999393bd4fd4744aed6 (patch) | |
tree | 3dc2e4b8b0a155609e5d564e0f3c379caf784e94 /sys | |
parent | b49c51915d551686c40da73f6abd499dd5649cef (diff) | |
download | FreeBSD-src-4f32c1a13f363162f975d999393bd4fd4744aed6.zip FreeBSD-src-4f32c1a13f363162f975d999393bd4fd4744aed6.tar.gz |
Add in the hardware PS-POLL frame reception setting, but leave it disabled
by default.
Adventourous souls with an AR9220/AR9280 or later and who have a device
that sends PS-POLL frames may wish to try tinkering with this option and
get back to me.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/ath/if_ath.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c index 6f7ed75..9ecf51f 100644 --- a/sys/dev/ath/if_ath.c +++ b/sys/dev/ath/if_ath.c @@ -1927,6 +1927,19 @@ ath_calcrxfilter(struct ath_softc *sc) if (ic->ic_opmode == IEEE80211_M_HOSTAP && IEEE80211_IS_CHAN_ANYG(ic->ic_curchan)) rfilt |= HAL_RX_FILTER_BEACON; + +#if 0 + /* + * Enable hardware PS-POLL only for hostap mode; + * STA mode sends PS-POLL frames but never + * sends them. + */ + if (ath_hal_getcapability(ah, HAL_CAP_HAS_PSPOLL, + 0, NULL) == HAL_OK && + ic->ic_opmode == IEEE80211_M_HOSTAP) + rfilt |= HAL_RX_FILTER_PSPOLL; +#endif + if (sc->sc_nmeshvaps) { rfilt |= HAL_RX_FILTER_BEACON; if (sc->sc_hasbmatch) @@ -1936,8 +1949,14 @@ ath_calcrxfilter(struct ath_softc *sc) } if (ic->ic_opmode == IEEE80211_M_MONITOR) rfilt |= HAL_RX_FILTER_CONTROL; + + /* + * Enable RX of compressed BAR frames only when doing + * 802.11n. Required for A-MPDU. + */ if (IEEE80211_IS_CHAN_HT(ic->ic_curchan)) rfilt |= HAL_RX_FILTER_COMPBAR; + DPRINTF(sc, ATH_DEBUG_MODE, "%s: RX filter 0x%x, %s if_flags 0x%x\n", __func__, rfilt, ieee80211_opmode_name[ic->ic_opmode], ifp->if_flags); return rfilt; |