From a0d1d1b8420812a7e7281163ff2df4d63d725beb Mon Sep 17 00:00:00 2001 From: Rajkumar Manoharan Date: Mon, 15 Oct 2012 15:29:50 +0530 Subject: [PATCH] --- yaml --- r: 340981 b: refs/heads/master c: 2097fdd7ebdb1674aaf7343b7a1d6cc2758c1dff h: refs/heads/master i: 340979: 0a90b3f9d03381f62555222c9e6c474bd33a5ed5 v: v3 --- [refs] | 2 +- trunk/drivers/net/wireless/ath/ath9k/ar9003_mci.c | 10 +++++++++- trunk/drivers/net/wireless/ath/ath9k/ar9003_mci.h | 1 + trunk/drivers/net/wireless/ath/ath9k/btcoex.h | 1 + 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index aa2e722ef4d2..6156cdae5782 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e9f9fd8cdc5fcb718e2ce778cb5e0eea27e2fdc8 +refs/heads/master: 2097fdd7ebdb1674aaf7343b7a1d6cc2758c1dff diff --git a/trunk/drivers/net/wireless/ath/ath9k/ar9003_mci.c b/trunk/drivers/net/wireless/ath/ath9k/ar9003_mci.c index 87d9c348e598..b04fa4622822 100644 --- a/trunk/drivers/net/wireless/ath/ath9k/ar9003_mci.c +++ b/trunk/drivers/net/wireless/ath/ath9k/ar9003_mci.c @@ -1203,7 +1203,7 @@ EXPORT_SYMBOL(ar9003_mci_cleanup); u32 ar9003_mci_state(struct ath_hw *ah, u32 state_type) { struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci; - u32 value = 0; + u32 value = 0, tsf; u8 query_type; switch (state_type) { @@ -1261,6 +1261,14 @@ u32 ar9003_mci_state(struct ath_hw *ah, u32 state_type) ar9003_mci_send_coex_bt_status_query(ah, true, query_type); break; case MCI_STATE_RECOVER_RX: + tsf = ath9k_hw_gettsf32(ah); + if ((tsf - mci->last_recovery) <= MCI_RECOVERY_DUR_TSF) { + ath_dbg(ath9k_hw_common(ah), MCI, + "(MCI) ignore Rx recovery\n"); + break; + } + ath_dbg(ath9k_hw_common(ah), MCI, "(MCI) RECOVER RX\n"); + mci->last_recovery = tsf; ar9003_mci_prep_interface(ah); mci->query_bt = true; mci->need_flush_btinfo = true; diff --git a/trunk/drivers/net/wireless/ath/ath9k/ar9003_mci.h b/trunk/drivers/net/wireless/ath/ath9k/ar9003_mci.h index 0910310ae834..3e51f54b0122 100644 --- a/trunk/drivers/net/wireless/ath/ath9k/ar9003_mci.h +++ b/trunk/drivers/net/wireless/ath/ath9k/ar9003_mci.h @@ -18,6 +18,7 @@ #define AR9003_MCI_H #define MCI_FLAG_DISABLE_TIMESTAMP 0x00000001 /* Disable time stamp */ +#define MCI_RECOVERY_DUR_TSF (100 * 1000) /* 100 ms */ /* Default remote BT device MCI COEX version */ #define MCI_GPM_COEX_MAJOR_VERSION_DEFAULT 3 diff --git a/trunk/drivers/net/wireless/ath/ath9k/btcoex.h b/trunk/drivers/net/wireless/ath/ath9k/btcoex.h index 94e921147e4c..2f84ab273d0c 100644 --- a/trunk/drivers/net/wireless/ath/ath9k/btcoex.h +++ b/trunk/drivers/net/wireless/ath/ath9k/btcoex.h @@ -88,6 +88,7 @@ struct ath9k_hw_mci { u8 bt_state; u8 stomp_ftp; bool concur_tx; + u32 last_recovery; }; struct ath_btcoex_hw {