summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath/if_ath.c
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2011-06-04 22:05:20 +0000
committerattilio <attilio@FreeBSD.org>2011-06-04 22:05:20 +0000
commit8e66ca1ff16b21df31a40fa743f8df3844507305 (patch)
tree7235c316aab81a86e3bfc131b1abae5475040624 /sys/dev/ath/if_ath.c
parent91525e4ff96713dd3149a3477069cc7213d0abae (diff)
parent786c89f781c52e7423abdc562256ef0830f60be6 (diff)
downloadFreeBSD-src-8e66ca1ff16b21df31a40fa743f8df3844507305.zip
FreeBSD-src-8e66ca1ff16b21df31a40fa743f8df3844507305.tar.gz
MFC
Diffstat (limited to 'sys/dev/ath/if_ath.c')
-rw-r--r--sys/dev/ath/if_ath.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index 45bd9ed..451bbeaf 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -1261,6 +1261,10 @@ ath_resume(struct ath_softc *sc)
sc->sc_curchan != NULL ? sc->sc_curchan : ic->ic_curchan,
AH_FALSE, &status);
ath_reset_keycache(sc);
+
+ /* Let DFS at it in case it's a DFS channel */
+ ath_dfs_radar_enable(sc, ic->ic_curchan);
+
if (sc->sc_resume_up) {
if (ic->ic_opmode == IEEE80211_M_STA) {
ath_init(sc);
@@ -2013,6 +2017,10 @@ ath_calcrxfilter(struct ath_softc *sc)
if (ic->ic_opmode == IEEE80211_M_MONITOR)
rfilt |= HAL_RX_FILTER_CONTROL;
+ if (sc->sc_dodfs) {
+ rfilt |= HAL_RX_FILTER_PHYRADAR;
+ }
+
/*
* Enable RX of compressed BAR frames only when doing
* 802.11n. Required for A-MPDU.
@@ -3465,7 +3473,7 @@ ath_rx_proc(void *arg, int npending)
if (rs->rs_status & HAL_RXERR_PHY) {
sc->sc_stats.ast_rx_phyerr++;
/* Process DFS radar events */
- ath_dfs_process_phy_err(sc, ds, tsf, rs);
+ ath_dfs_process_phy_err(sc, mtod(m, char *), tsf, rs);
/* Be suitably paranoid about receiving phy errors out of the stats array bounds */
if (rs->rs_phyerr < 64)
OpenPOWER on IntegriCloud