]> git.karo-electronics.de Git - linux-beck.git/commitdiff
ath9k: fix AR_RX_FILTER for ar9462/ar9565 when rx stopped
authorMiaoqing Pan <miaoqing@qca.qualcomm.com>
Thu, 20 Aug 2015 01:21:38 +0000 (09:21 +0800)
committerKalle Valo <kvalo@qca.qualcomm.com>
Fri, 11 Dec 2015 12:08:57 +0000 (14:08 +0200)
When rx stopped, AR_RX_FILTER should be cleared, but in
ath9k_hw_setrxfilter(), ATH9K_RX_FILTER_CONTROL_WRAPPER will always
be set for ar9462/ar9565.

Fix this by moving the code in ath9k_hw_setrxfilter() to
ath_calcrxfilter().

Signed-off-by: Miaoqing Pan <miaoqing@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath9k/hw.c
drivers/net/wireless/ath/ath9k/recv.c

index 2e252af0b26a6b4e67c51d4d1ffa157e69ef893b..257f46ed4a040a5354a1542a2c039af3101fe72f 100644 (file)
@@ -2761,9 +2761,6 @@ void ath9k_hw_setrxfilter(struct ath_hw *ah, u32 bits)
 
        ENABLE_REGWRITE_BUFFER(ah);
 
-       if (AR_SREV_9462(ah) || AR_SREV_9565(ah))
-               bits |= ATH9K_RX_FILTER_CONTROL_WRAPPER;
-
        REG_WRITE(ah, AR_RX_FILTER, bits);
 
        phybits = 0;
index 994daf6c629798332ffe362efa5dd3481a93cdf1..32160fca876a0d04492bf40e1bf79f0850ec2d23 100644 (file)
@@ -424,6 +424,9 @@ u32 ath_calcrxfilter(struct ath_softc *sc)
            AR_SREV_9561(sc->sc_ah))
                rfilt |= ATH9K_RX_FILTER_4ADDRESS;
 
+       if (AR_SREV_9462(sc->sc_ah) || AR_SREV_9565(sc->sc_ah))
+               rfilt |= ATH9K_RX_FILTER_CONTROL_WRAPPER;
+
        if (ath9k_is_chanctx_enabled() &&
            test_bit(ATH_OP_SCANNING, &common->op_flags))
                rfilt |= ATH9K_RX_FILTER_BEACON;