ath9k_hw: optimize interrupt mask changes
authorFelix Fietkau <nbd@openwrt.org>
Mon, 8 Nov 2010 19:54:47 +0000 (20:54 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 9 Nov 2010 21:13:24 +0000 (16:13 -0500)
commit4df3071ebd92ef7115b409da64d0eb405d24a631
tree825eaecb9d9e8d0fde7f61e5f98fdd823ccef718
parent790a11f268373b60069bc1371dc05143107c607c
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>
drivers/net/wireless/ath/ath9k/beacon.c
drivers/net/wireless/ath/ath9k/gpio.c
drivers/net/wireless/ath/ath9k/mac.c
drivers/net/wireless/ath/ath9k/mac.h
drivers/net/wireless/ath/ath9k/main.c