diff options
author | Rajkumar Manoharan <rmanohar@qca.qualcomm.com> | 2012-06-11 02:49:35 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-06-13 14:35:54 -0400 |
commit | 92a33298e9a329d4bed9f723811c5bedc7d92b9c (patch) | |
tree | b08491390a27533068c3d9ac83a2b4bd737f04f1 | |
parent | ed6ebd8bc852845e34e8160eed43b29236b1892f (diff) |
ath9k_hw: process MCI interrupts only when btcoex is enabled
let us process MCI interrupts only when BTCOEX is enabled to avoid
processing bogus interrupts.
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ar9003_mac.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.c b/drivers/net/wireless/ath/ath9k/ar9003_mac.c index d9e0824af093..78816b8b2173 100644 --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c | |||
@@ -181,11 +181,14 @@ static bool ar9003_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked) | |||
181 | u32 mask2 = 0; | 181 | u32 mask2 = 0; |
182 | struct ath9k_hw_capabilities *pCap = &ah->caps; | 182 | struct ath9k_hw_capabilities *pCap = &ah->caps; |
183 | struct ath_common *common = ath9k_hw_common(ah); | 183 | struct ath_common *common = ath9k_hw_common(ah); |
184 | u32 sync_cause = 0, async_cause; | 184 | u32 sync_cause = 0, async_cause, async_mask = AR_INTR_MAC_IRQ; |
185 | |||
186 | if (ath9k_hw_mci_is_enabled(ah)) | ||
187 | async_mask |= AR_INTR_ASYNC_MASK_MCI; | ||
185 | 188 | ||
186 | async_cause = REG_READ(ah, AR_INTR_ASYNC_CAUSE); | 189 | async_cause = REG_READ(ah, AR_INTR_ASYNC_CAUSE); |
187 | 190 | ||
188 | if (async_cause & (AR_INTR_MAC_IRQ | AR_INTR_ASYNC_MASK_MCI)) { | 191 | if (async_cause & async_mask) { |
189 | if ((REG_READ(ah, AR_RTC_STATUS) & AR_RTC_STATUS_M) | 192 | if ((REG_READ(ah, AR_RTC_STATUS) & AR_RTC_STATUS_M) |
190 | == AR_RTC_STATUS_ON) | 193 | == AR_RTC_STATUS_ON) |
191 | isr = REG_READ(ah, AR_ISR); | 194 | isr = REG_READ(ah, AR_ISR); |