ath9k_hw: check for asynchronous MCI interrupt pending

MCI interrupt is an asynchronous one, so take care of it by having a
check in ath9k_hw_intrpend, which actually decides whether the interrupt
is really for the driver from ath_isr

Cc: Wilson Tsao <wtsao@qca.qualcomm.com>
Cc: Senthil Balasubramanian <senthilb@qca.qualcomm.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Mohammed Shafi Shajakhan 2011-11-30 10:41:20 +05:30 committed by John W. Linville
parent f229f815d2
commit e35848134c
1 changed files with 4 additions and 1 deletions

View File

@ -760,7 +760,10 @@ bool ath9k_hw_intrpend(struct ath_hw *ah)
return true; return true;
host_isr = REG_READ(ah, AR_INTR_ASYNC_CAUSE); host_isr = REG_READ(ah, AR_INTR_ASYNC_CAUSE);
if ((host_isr & AR_INTR_MAC_IRQ) && (host_isr != AR_INTR_SPURIOUS))
if (((host_isr & AR_INTR_MAC_IRQ) ||
(host_isr & AR_INTR_ASYNC_MASK_MCI)) &&
(host_isr != AR_INTR_SPURIOUS))
return true; return true;
host_isr = REG_READ(ah, AR_INTR_SYNC_CAUSE); host_isr = REG_READ(ah, AR_INTR_SYNC_CAUSE);