541-ath9k_optimize_interrupt_mitigation.patch 1009 B

123456789101112131415161718192021222324252627282930
  1. --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
  2. +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
  3. @@ -241,21 +241,19 @@ static bool ar9003_hw_get_isr(struct ath
  4. *masked = isr & ATH9K_INT_COMMON;
  5. - if (ah->config.rx_intr_mitigation)
  6. + if (ah->config.rx_intr_mitigation) {
  7. if (isr & (AR_ISR_RXMINTR | AR_ISR_RXINTM))
  8. *masked |= ATH9K_INT_RXLP;
  9. -
  10. - if (ah->config.tx_intr_mitigation)
  11. - if (isr & (AR_ISR_TXMINTR | AR_ISR_TXINTM))
  12. - *masked |= ATH9K_INT_TX;
  13. -
  14. - if (isr & (AR_ISR_LP_RXOK | AR_ISR_RXERR))
  15. + } else if (isr & (AR_ISR_LP_RXOK | AR_ISR_RXERR))
  16. *masked |= ATH9K_INT_RXLP;
  17. if (isr & AR_ISR_HP_RXOK)
  18. *masked |= ATH9K_INT_RXHP;
  19. - if (isr & (AR_ISR_TXOK | AR_ISR_TXERR | AR_ISR_TXEOL)) {
  20. + if (ah->config.tx_intr_mitigation) {
  21. + if (isr & (AR_ISR_TXMINTR | AR_ISR_TXINTM))
  22. + *masked |= ATH9K_INT_TX;
  23. + } else if (isr & (AR_ISR_TXOK | AR_ISR_TXERR | AR_ISR_TXEOL)) {
  24. *masked |= ATH9K_INT_TX;
  25. if (!(pCap->hw_caps & ATH9K_HW_CAP_RAC_SUPPORTED)) {