summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/ath/ath_hal/ar5416/ar5416.h4
-rw-r--r--sys/dev/ath/ath_hal/ar5416/ar5416_attach.c1
-rw-r--r--sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c10
3 files changed, 12 insertions, 3 deletions
diff --git a/sys/dev/ath/ath_hal/ar5416/ar5416.h b/sys/dev/ath/ath_hal/ar5416/ar5416.h
index 4920922..90397aa 100644
--- a/sys/dev/ath/ath_hal/ar5416/ar5416.h
+++ b/sys/dev/ath/ath_hal/ar5416/ar5416.h
@@ -107,6 +107,9 @@ struct ath_hal_5416 {
void (*ah_initPLL) (struct ath_hal *ah,
const struct ieee80211_channel *chan);
+ /* bluetooth coexistence operations */
+ void (*ah_btCoexSetDiversity)(struct ath_hal *ah);
+
u_int ah_globaltxtimeout; /* global tx timeout */
u_int ah_gpioMask;
int ah_hangs; /* h/w hangs state */
@@ -200,6 +203,7 @@ extern void ar5416SetBTCoexInfo(struct ath_hal *ah,
HAL_BT_COEX_INFO *btinfo);
extern void ar5416BTCoexConfig(struct ath_hal *ah,
HAL_BT_COEX_CONFIG *btconf);
+extern void ar5416BTCoexAntennaDiversity(struct ath_hal *ah);
extern void ar5416BTCoexSetQcuThresh(struct ath_hal *ah, int qnum);
extern void ar5416BTCoexSetWeights(struct ath_hal *ah, uint32_t stompType);
extern void ar5416BTCoexSetupBmissThresh(struct ath_hal *ah,
diff --git a/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c b/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
index a7cb06d..5a48481 100644
--- a/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
+++ b/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
@@ -200,6 +200,7 @@ ar5416InitState(struct ath_hal_5416 *ahp5416, uint16_t devid, HAL_SOFTC sc,
ah->ah_btcoexSetParameter = ar5416BTCoexSetParameter;
ah->ah_btCoexDisable = ar5416BTCoexDisable;
ah->ah_btCoexEnable = ar5416BTCoexEnable;
+ AH5416(ah)->ah_btCoexSetDiversity = ar5416BTCoexAntennaDiversity;
ahp->ah_priv.ah_getWirelessModes= ar5416GetWirelessModes;
ahp->ah_priv.ah_eepromRead = ar5416EepromRead;
diff --git a/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c b/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c
index b7ac118..14cdf69 100644
--- a/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c
+++ b/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c
@@ -173,7 +173,7 @@ ar5416BTCoexSetupBmissThresh(struct ath_hal *ah, u_int32_t thresh)
*
* Kite will override this particular method.
*/
-static void
+void
ar5416BTCoexAntennaDiversity(struct ath_hal *ah)
{
}
@@ -350,8 +350,12 @@ ar5416InitBTCoex(struct ath_hal *ah)
ar5416GpioCfgInput(ah, ahp->ah_btActiveGpioSelect);
ar5416GpioCfgInput(ah, ahp->ah_btPriorityGpioSelect);
- if (AR_SREV_KITE(ah))
- ar5416BTCoexAntennaDiversity(ah);
+ /*
+ * Configure the antenna diversity setup.
+ * It's a no-op for AR9287; AR9285 overrides this
+ * as required.
+ */
+ AH5416(ah)->ah_btCoexSetDiversity(ah);
if (ahp->ah_btCoexEnabled)
ar5416BTCoexEnable(ah);
OpenPOWER on IntegriCloud