On Tue, Feb 21, 2012 at 2:53 PM, Sujith Manoharan <c_manoha@xxxxxxxxxxxxxxxx> wrote: > Signed-off-by: Sujith Manoharan <c_manoha@xxxxxxxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath9k/ar9003_mac.c | 29 +------------------------- > drivers/net/wireless/ath/ath9k/ar9003_mci.c | 25 +++++++++++++++++++++++ > drivers/net/wireless/ath/ath9k/hw.h | 1 + > 3 files changed, 28 insertions(+), 27 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.c b/drivers/net/wireless/ath/ath9k/ar9003_mac.c > index 39cb482..575f36a 100644 > --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c > +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c > @@ -180,7 +180,6 @@ static bool ar9003_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked) > u32 mask2 = 0; > struct ath9k_hw_capabilities *pCap = &ah->caps; > struct ath_common *common = ath9k_hw_common(ah); > - struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci; > u32 sync_cause = 0, async_cause; > > async_cause = REG_READ(ah, AR_INTR_ASYNC_CAUSE); > @@ -302,32 +301,8 @@ static bool ar9003_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked) > ar9003_hw_bb_watchdog_read(ah); > } > > - if (async_cause & AR_INTR_ASYNC_MASK_MCI) { > - u32 raw_intr, rx_msg_intr; > - > - rx_msg_intr = REG_READ(ah, AR_MCI_INTERRUPT_RX_MSG_RAW); > - raw_intr = REG_READ(ah, AR_MCI_INTERRUPT_RAW); > - > - if ((raw_intr == 0xdeadbeef) || (rx_msg_intr == 0xdeadbeef)) > - ath_dbg(common, MCI, > - "MCI gets 0xdeadbeef during MCI int processing new raw_intr=0x%08x, new rx_msg_raw=0x%08x, raw_intr=0x%08x, rx_msg_raw=0x%08x\n", > - raw_intr, rx_msg_intr, mci->raw_intr, > - mci->rx_msg_intr); > - else { > - mci->rx_msg_intr |= rx_msg_intr; > - mci->raw_intr |= raw_intr; > - *masked |= ATH9K_INT_MCI; > - > - if (rx_msg_intr & AR_MCI_INTERRUPT_RX_MSG_CONT_INFO) > - mci->cont_status = > - REG_READ(ah, AR_MCI_CONT_STATUS); > - > - REG_WRITE(ah, AR_MCI_INTERRUPT_RX_MSG_RAW, rx_msg_intr); > - REG_WRITE(ah, AR_MCI_INTERRUPT_RAW, raw_intr); > - ath_dbg(common, MCI, "AR_INTR_SYNC_MCI\n"); > - > - } > - } > + if (async_cause & AR_INTR_ASYNC_MASK_MCI) > + ar9003_mci_get_isr(ah, masked); > > if (sync_cause) { > if (sync_cause & AR_INTR_SYNC_RADM_CPL_TIMEOUT) { > diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mci.c b/drivers/net/wireless/ath/ath9k/ar9003_mci.c > index f910bae..118e774 100644 > --- a/drivers/net/wireless/ath/ath9k/ar9003_mci.c > +++ b/drivers/net/wireless/ath/ath9k/ar9003_mci.c > @@ -412,6 +412,31 @@ void ar9003_mci_get_interrupt(struct ath_hw *ah, u32 *raw_intr, > } > EXPORT_SYMBOL(ar9003_mci_get_interrupt); > > +void ar9003_mci_get_isr(struct ath_hw *ah, enum ath9k_int *masked) > +{ > + struct ath_common *common = ath9k_hw_common(ah); > + struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci; > + u32 raw_intr, rx_msg_intr; > + > + rx_msg_intr = REG_READ(ah, AR_MCI_INTERRUPT_RX_MSG_RAW); > + raw_intr = REG_READ(ah, AR_MCI_INTERRUPT_RAW); > + > + if ((raw_intr == 0xdeadbeef) || (rx_msg_intr == 0xdeadbeef)) { > + ath_dbg(common, MCI, > + "MCI gets 0xdeadbeef during int processing\n"); > + } else { > + mci->rx_msg_intr |= rx_msg_intr; > + mci->raw_intr |= raw_intr; > + *masked |= ATH9K_INT_MCI; > + > + if (rx_msg_intr & AR_MCI_INTERRUPT_RX_MSG_CONT_INFO) > + mci->cont_status = REG_READ(ah, AR_MCI_CONT_STATUS); > + > + REG_WRITE(ah, AR_MCI_INTERRUPT_RX_MSG_RAW, rx_msg_intr); > + REG_WRITE(ah, AR_MCI_INTERRUPT_RAW, raw_intr); > + } > +} > + > void ar9003_mci_2g5g_changed(struct ath_hw *ah, bool is_2g) > { > struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci; > diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h > index 6a29004..ebc32d0 100644 > --- a/drivers/net/wireless/ath/ath9k/hw.h > +++ b/drivers/net/wireless/ath/ath9k/hw.h > @@ -1231,6 +1231,7 @@ void ar9003_mci_send_lna_transfer(struct ath_hw *ah, bool wait_done); > void ar9003_mci_sync_bt_state(struct ath_hw *ah); > void ar9003_mci_get_interrupt(struct ath_hw *ah, u32 *raw_intr, > u32 *rx_msg_intr); > +void ar9003_mci_get_isr(struct ath_hw *ah, enum ath9k_int *masked); > > #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT > static inline enum ath_btcoex_scheme > -- > 1.7.9.1 > > thanks for making it easy to read! -- thanks, shafi -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html