]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
ath9k_hw: Fix TX interrupt mitigation settings
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Mon, 26 Apr 2010 19:04:41 +0000 (15:04 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 27 Apr 2010 20:09:20 +0000 (16:09 -0400)
TX interrupt mitigation reduces the number of interrupts
by addressing several interrupt actions (AR_IMR_TXOK,
AR_IMR_TXDESC) all in one interrupt so when enabling
it discard setting the other interrupts.

Without this TX interrupt mitigation would actually
increase the number of interrupts two-fold. We still
leave TX interrupt mitigation disabled as it is still
being tested.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/mac.c

index 7bbf502563bc046e7863ad26613d435d054d0c05..0e425cb4bbb1b9b8fb189d17792c9758babb1bd1 100644 (file)
@@ -878,10 +878,12 @@ enum ath9k_int ath9k_hw_set_interrupts(struct ath_hw *ah,
        if (ints & ATH9K_INT_TX) {
                if (ah->config.tx_intr_mitigation)
                        mask |= AR_IMR_TXMINTR | AR_IMR_TXINTM;
-               if (ah->txok_interrupt_mask)
-                       mask |= AR_IMR_TXOK;
-               if (ah->txdesc_interrupt_mask)
-                       mask |= AR_IMR_TXDESC;
+               else {
+                       if (ah->txok_interrupt_mask)
+                               mask |= AR_IMR_TXOK;
+                       if (ah->txdesc_interrupt_mask)
+                               mask |= AR_IMR_TXDESC;
+               }
                if (ah->txerr_interrupt_mask)
                        mask |= AR_IMR_TXERR;
                if (ah->txeol_interrupt_mask)