ath9k: disable unnecessary PHY error reporting
authorFelix Fietkau <nbd@openwrt.org>
Sat, 8 Oct 2011 13:49:57 +0000 (15:49 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 11 Oct 2011 20:41:24 +0000 (16:41 -0400)
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>
Cc: stable@kernel.org
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ani.c
drivers/net/wireless/ath/ath9k/recv.c

index 01240d63896ed27d08c7948bc1b49e6f2e658370..2776c3c1f506286639d0db1e54dd2bd003d2fec1 100644 (file)
@@ -504,9 +504,6 @@ static void ath9k_ani_reset_old(struct ath_hw *ah, bool is_scanning)
                ath9k_hw_ani_control(ah, ATH9K_ANI_CCK_WEAK_SIGNAL_THR,
                                     ATH9K_ANI_CCK_WEAK_SIG_THR);
 
-               ath9k_hw_setrxfilter(ah, ath9k_hw_getrxfilter(ah) |
-                                    ATH9K_RX_FILTER_PHYERR);
-
                ath9k_ani_restart(ah);
                return;
        }
@@ -527,8 +524,6 @@ static void ath9k_ani_reset_old(struct ath_hw *ah, bool is_scanning)
                ath9k_hw_ani_control(ah, ATH9K_ANI_FIRSTEP_LEVEL,
                                     aniState->firstepLevel);
 
-       ath9k_hw_setrxfilter(ah, ath9k_hw_getrxfilter(ah) &
-                            ~ATH9K_RX_FILTER_PHYERR);
        ath9k_ani_restart(ah);
 
        ENABLE_REGWRITE_BUFFER(ah);
index f658ec60b5103333a77106311b47c0221c79a077..d28a5ddc7992653bfaa4ded2f81ef711fa0d3f64 100644 (file)
@@ -433,12 +433,9 @@ void ath_rx_cleanup(struct ath_softc *sc)
 
 u32 ath_calcrxfilter(struct ath_softc *sc)
 {
-#define        RX_FILTER_PRESERVE (ATH9K_RX_FILTER_PHYERR | ATH9K_RX_FILTER_PHYRADAR)
-
        u32 rfilt;
 
-       rfilt = (ath9k_hw_getrxfilter(sc->sc_ah) & RX_FILTER_PRESERVE)
-               | ATH9K_RX_FILTER_UCAST | ATH9K_RX_FILTER_BCAST
+       rfilt = ATH9K_RX_FILTER_UCAST | ATH9K_RX_FILTER_BCAST
                | ATH9K_RX_FILTER_MCAST;
 
        if (sc->rx.rxfilter & FIF_PROBE_REQ)