ath9k_hw: optimize interrupt mask changes
OProfile showed that ath9k was spending way too much time in ath9k_hw_set_interrupts. Since most of the interrupt mask changes only need to globally enable/disable interrupts, it makes sense to split this part into separate functions, replacing all calls to ath9k_hw_set_interrupts(ah, 0) with ath9k_hw_disable_interrupts(ah). ath9k_hw_set_interrupts(ah, ah->imask) only gets changed to ath9k_hw_enable_interrupts(ah), whenever ah->imask was not changed since the point where interrupts were disabled. Signed-off-by:Felix Fietkau <nbd@openwrt.org> Signed-off-by:
John W. Linville <linville@tuxdriver.com>
Showing
- drivers/net/wireless/ath/ath9k/beacon.c 3 additions, 3 deletionsdrivers/net/wireless/ath/ath9k/beacon.c
- drivers/net/wireless/ath/ath9k/gpio.c 2 additions, 2 deletionsdrivers/net/wireless/ath/ath9k/gpio.c
- drivers/net/wireless/ath/ath9k/mac.c 50 additions, 36 deletionsdrivers/net/wireless/ath/ath9k/mac.c
- drivers/net/wireless/ath/ath9k/mac.h 4 additions, 2 deletionsdrivers/net/wireless/ath/ath9k/mac.h
- drivers/net/wireless/ath/ath9k/main.c 9 additions, 9 deletionsdrivers/net/wireless/ath/ath9k/main.c
Loading
Please register or sign in to comment