aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-10-08 09:49:57 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2011-11-11 12:35:44 -0500
commit07bb3623343d8060b6f68aa294e3ecb9391a82d4 (patch)
tree2a03c69dea0f757d1f95d06d3ebdb8831f2aed51
parente4779966c769188b76ee699e0ab476030b2d2e6a (diff)
ath9k: disable unnecessary PHY error reporting
commit ac06697c79bad09e44a8b1d52104014016fb90de upstream. PHY errors relevant for ANI are always tracked by hardware counters, the bits that allow them to pass through the rx filter are independent of that. Enabling PHY errors in the rx filter often creates lots of useless DMA traffic and might be responsible for some of the rx dma stop failure warnings. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/net/wireless/ath/ath9k/ani.c5
-rw-r--r--drivers/net/wireless/ath/ath9k/recv.c5
2 files changed, 1 insertions, 9 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ani.c b/drivers/net/wireless/ath/ath9k/ani.c
index bfb6481f01f..4e4e7c3dcdd 100644
--- a/drivers/net/wireless/ath/ath9k/ani.c
+++ b/drivers/net/wireless/ath/ath9k/ani.c
@@ -502,9 +502,6 @@ static void ath9k_ani_reset_old(struct ath_hw *ah, bool is_scanning)
502 ath9k_hw_ani_control(ah, ATH9K_ANI_CCK_WEAK_SIGNAL_THR, 502 ath9k_hw_ani_control(ah, ATH9K_ANI_CCK_WEAK_SIGNAL_THR,
503 ATH9K_ANI_CCK_WEAK_SIG_THR); 503 ATH9K_ANI_CCK_WEAK_SIG_THR);
504 504
505 ath9k_hw_setrxfilter(ah, ath9k_hw_getrxfilter(ah) |
506 ATH9K_RX_FILTER_PHYERR);
507
508 ath9k_ani_restart(ah); 505 ath9k_ani_restart(ah);
509 return; 506 return;
510 } 507 }
@@ -525,8 +522,6 @@ static void ath9k_ani_reset_old(struct ath_hw *ah, bool is_scanning)
525 ath9k_hw_ani_control(ah, ATH9K_ANI_FIRSTEP_LEVEL, 522 ath9k_hw_ani_control(ah, ATH9K_ANI_FIRSTEP_LEVEL,
526 aniState->firstepLevel); 523 aniState->firstepLevel);
527 524
528 ath9k_hw_setrxfilter(ah, ath9k_hw_getrxfilter(ah) &
529 ~ATH9K_RX_FILTER_PHYERR);
530 ath9k_ani_restart(ah); 525 ath9k_ani_restart(ah);
531 526
532 ENABLE_REGWRITE_BUFFER(ah); 527 ENABLE_REGWRITE_BUFFER(ah);
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
index 07e35e59c9e..3b5f9d6e3cb 100644
--- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c
@@ -423,12 +423,9 @@ void ath_rx_cleanup(struct ath_softc *sc)
423 423
424u32 ath_calcrxfilter(struct ath_softc *sc) 424u32 ath_calcrxfilter(struct ath_softc *sc)
425{ 425{
426#define RX_FILTER_PRESERVE (ATH9K_RX_FILTER_PHYERR | ATH9K_RX_FILTER_PHYRADAR)
427
428 u32 rfilt; 426 u32 rfilt;
429 427
430 rfilt = (ath9k_hw_getrxfilter(sc->sc_ah) & RX_FILTER_PRESERVE) 428 rfilt = ATH9K_RX_FILTER_UCAST | ATH9K_RX_FILTER_BCAST
431 | ATH9K_RX_FILTER_UCAST | ATH9K_RX_FILTER_BCAST
432 | ATH9K_RX_FILTER_MCAST; 429 | ATH9K_RX_FILTER_MCAST;
433 430
434 if (sc->rx.rxfilter & FIF_PROBE_REQ) 431 if (sc->rx.rxfilter & FIF_PROBE_REQ)