diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/recv.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/recv.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c index ee156e54314..ee7ca5aecdb 100644 --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c @@ -381,6 +381,10 @@ u32 ath_calcrxfilter(struct ath_softc *sc)  	rfilt = ATH9K_RX_FILTER_UCAST | ATH9K_RX_FILTER_BCAST  		| ATH9K_RX_FILTER_MCAST; +	/* if operating on a DFS channel, enable radar pulse detection */ +	if (sc->hw->conf.radar_enabled) +		rfilt |= ATH9K_RX_FILTER_PHYRADAR | ATH9K_RX_FILTER_PHYERR; +  	if (sc->rx.rxfilter & FIF_PROBE_REQ)  		rfilt |= ATH9K_RX_FILTER_PROBEREQ; @@ -1228,6 +1232,9 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp)  		    unlikely(tsf_lower - rs.rs_tstamp > 0x10000000))  			rxs->mactime += 0x100000000ULL; +		if (rs.rs_phyerr == ATH9K_PHYERR_RADAR) +			ath9k_dfs_process_phyerr(sc, hdr, &rs, rxs->mactime); +  		if (rs.rs_status & ATH9K_RXERR_PHY) {  			if (ath_process_fft(sc, hdr, &rs, rxs->mactime)) {  				RX_STAT_INC(rx_spectral);  |