openwrtv3/package/mac80211/patches/541-ath9k_optimize_interrupt_mitigation.patch
2012-12-07 16:46:04 +00:00

30 lines
1,009 B
Diff

--- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
@@ -241,21 +241,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)) {