summaryrefslogtreecommitdiff
path: root/package/mac80211/patches/564-ath9k_optimize_interrupt_mitigation.patch
blob: 5674fbb9d346fb4c06831e30af9de33fea814afd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
@@ -237,21 +237,19 @@ static bool ar9003_hw_get_isr(struct ath
 
 		*masked = isr & ATH9K_INT_COMMON;
 
-		if (ah->config.rx_intr_mitigation)
+		if (ah->config.rx_intr_mitigation) {
 			if (isr & (AR_ISR_RXMINTR | AR_ISR_RXINTM))
 				*masked |= ATH9K_INT_RXLP;
-
-		if (ah->config.tx_intr_mitigation)
-			if (isr & (AR_ISR_TXMINTR | AR_ISR_TXINTM))
-				*masked |= ATH9K_INT_TX;
-
-		if (isr & (AR_ISR_LP_RXOK | AR_ISR_RXERR))
+		} else if (isr & (AR_ISR_LP_RXOK | AR_ISR_RXERR))
 			*masked |= ATH9K_INT_RXLP;
 
 		if (isr & AR_ISR_HP_RXOK)
 			*masked |= ATH9K_INT_RXHP;
 
-		if (isr & (AR_ISR_TXOK | AR_ISR_TXERR | AR_ISR_TXEOL)) {
+		if (ah->config.tx_intr_mitigation) {
+			if (isr & (AR_ISR_TXMINTR | AR_ISR_TXINTM))
+				*masked |= ATH9K_INT_TX;
+		} else if (isr & (AR_ISR_TXOK | AR_ISR_TXERR | AR_ISR_TXEOL)) {
 			*masked |= ATH9K_INT_TX;
 
 			if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {