]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - drivers/net/wireless/ath/ath9k/btcoex.h
ath9k: move bt_stomp_type to driver core
[linux-2.6.git] / drivers / net / wireless / ath / ath9k / btcoex.h
index 297b027fd3c38b17f61e3ef3c8557664b99676fe..d932f01f77319aa5ba6ac3ec35cfc3d1927a314f 100644 (file)
@@ -17,6 +17,8 @@
 #ifndef BTCOEX_H
 #define BTCOEX_H
 
+#include "hw.h"
+
 #define ATH_WLANACTIVE_GPIO    5
 #define ATH_BTACTIVE_GPIO      6
 #define ATH_BTPRIORITY_GPIO    7
@@ -34,13 +36,6 @@ enum ath_btcoex_scheme {
        ATH_BTCOEX_CFG_3WIRE,
 };
 
-enum ath_stomp_type {
-       ATH_BTCOEX_NO_STOMP,
-       ATH_BTCOEX_STOMP_ALL,
-       ATH_BTCOEX_STOMP_LOW,
-       ATH_BTCOEX_STOMP_NONE
-};
-
 enum ath_bt_mode {
        ATH_BT_COEX_MODE_LEGACY,        /* legacy rx_clear mode */
        ATH_BT_COEX_MODE_UNSLOTTED,     /* untimed/unslotted mode */
@@ -62,39 +57,22 @@ struct ath_btcoex_config {
 
 struct ath_btcoex_info {
        enum ath_btcoex_scheme btcoex_scheme;
+       bool enabled;
        u8 wlanactive_gpio;
        u8 btactive_gpio;
        u8 btpriority_gpio;
        u8 bt_duty_cycle;       /* BT duty cycle in percentage */
-       int bt_stomp_type;      /* Types of BT stomping */
        u32 bt_coex_mode;       /* Register setting for AR_BT_COEX_MODE */
        u32 bt_coex_weights;    /* Register setting for AR_BT_COEX_WEIGHT */
        u32 bt_coex_mode2;      /* Register setting for AR_BT_COEX_MODE2 */
-       u32 btcoex_no_stomp;   /* in usec */
-       u32 btcoex_period;      /* in usec */
-       u32 bt_priority_cnt;
-       unsigned long bt_priority_time;
-       bool hw_timer_enabled;
-       spinlock_t btcoex_lock;
-       struct timer_list period_timer;      /* Timer for BT period */
-       struct ath_gen_timer *no_stomp_timer; /*Timer for no BT stomping*/
 };
 
 bool ath_btcoex_supported(u16 subsysid);
-int ath9k_hw_btcoex_init(struct ath_hw *ah);
+void ath9k_hw_btcoex_init_2wire(struct ath_hw *ah);
+void ath9k_hw_btcoex_init_3wire(struct ath_hw *ah);
+void ath9k_hw_init_btcoex_hw_info(struct ath_hw *ah, int qnum);
 void ath9k_hw_btcoex_enable(struct ath_hw *ah);
 void ath9k_hw_btcoex_disable(struct ath_hw *ah);
-void ath_btcoex_timer_resume(struct ath_softc *sc,
-                            struct ath_btcoex_info *btinfo);
-void ath_btcoex_timer_pause(struct ath_softc *sc,
-                           struct ath_btcoex_info *btinfo);
 
-static inline void ath_btcoex_set_weight(struct ath_btcoex_info *btcoex_info,
-                                        u32 bt_weight,
-                                        u32 wlan_weight)
-{
-       btcoex_info->bt_coex_weights = SM(bt_weight, AR_BTCOEX_BT_WGHT) |
-                                      SM(wlan_weight, AR_BTCOEX_WL_WGHT);
-}
 
 #endif