ath9k_hw: clean up tx completion interrupt handling
authorFelix Fietkau <nbd@openwrt.org>
Wed, 14 Mar 2012 15:40:22 +0000 (16:40 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 15 Mar 2012 17:43:13 +0000 (13:43 -0400)
TXQ_FLAG_TXOKINT_ENABLE and TXQ_FLAG_TXERRINT_ENABLE are always set and
used together, and they share the same bitmask in enum ath9k_tx_queue_flags.
Simplify the code that tests for these flags.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/mac.c
drivers/net/wireless/ath/ath9k/mac.h
drivers/net/wireless/ath/ath9k/xmit.c

index 13b6afd678265d96040f5bd7fa15d62fd6937d3f..bfb95e5d263c661a95d415d99563750d807f4680 100644 (file)
@@ -516,10 +516,10 @@ bool ath9k_hw_resettxqueue(struct ath_hw *ah, u32 q)
                REG_WRITE(ah, AR_Q_DESC_CRCCHK, AR_Q_DESC_CRCCHK_EN);
 
        ath9k_hw_clear_queue_interrupts(ah, q);
-       if (qi->tqi_qflags & TXQ_FLAG_TXOKINT_ENABLE)
+       if (qi->tqi_qflags & TXQ_FLAG_TXINT_ENABLE) {
                ah->txok_interrupt_mask |= 1 << q;
-       if (qi->tqi_qflags & TXQ_FLAG_TXERRINT_ENABLE)
                ah->txerr_interrupt_mask |= 1 << q;
+       }
        if (qi->tqi_qflags & TXQ_FLAG_TXDESCINT_ENABLE)
                ah->txdesc_interrupt_mask |= 1 << q;
        if (qi->tqi_qflags & TXQ_FLAG_TXEOLINT_ENABLE)
@@ -743,8 +743,7 @@ int ath9k_hw_beaconq_setup(struct ath_hw *ah)
        qi.tqi_cwmax = 0;
 
        if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
-               qi.tqi_qflags = TXQ_FLAG_TXOKINT_ENABLE |
-                               TXQ_FLAG_TXERRINT_ENABLE;
+               qi.tqi_qflags = TXQ_FLAG_TXINT_ENABLE;
 
        return ath9k_hw_setuptxqueue(ah, ATH9K_TX_QUEUE_BEACON, &qi);
 }
index 11dbd1473a13049f659b198520cba1177c80138a..6476d907320295f2827ae799bcbfa320b381fc1a 100644 (file)
@@ -583,8 +583,7 @@ enum ath9k_tx_queue {
 #define ATH9K_WME_UPSD 4
 
 enum ath9k_tx_queue_flags {
-       TXQ_FLAG_TXOKINT_ENABLE = 0x0001,
-       TXQ_FLAG_TXERRINT_ENABLE = 0x0001,
+       TXQ_FLAG_TXINT_ENABLE = 0x0001,
        TXQ_FLAG_TXDESCINT_ENABLE = 0x0002,
        TXQ_FLAG_TXEOLINT_ENABLE = 0x0004,
        TXQ_FLAG_TXURNINT_ENABLE = 0x0008,
index 5faec1e04d6591966d925c708ed5cec57a3e0a2e..c6b93f619843a28079a7a1f13d0973ca19500f06 100644 (file)
@@ -1355,8 +1355,7 @@ struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype)
         * based intr on the EOSP frames.
         */
        if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
-               qi.tqi_qflags = TXQ_FLAG_TXOKINT_ENABLE |
-                               TXQ_FLAG_TXERRINT_ENABLE;
+               qi.tqi_qflags = TXQ_FLAG_TXINT_ENABLE;
        } else {
                if (qtype == ATH9K_TX_QUEUE_UAPSD)
                        qi.tqi_qflags = TXQ_FLAG_TXDESCINT_ENABLE;