ath9k: Move btcoex related data to a separate struct
authorVasanthakumar Thiagarajan <vasanth@atheros.com>
Wed, 26 Aug 2009 15:38:46 +0000 (21:08 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 28 Aug 2009 18:40:49 +0000 (14:40 -0400)
Also define macros for wlanactive and btactive (5 & 6) gpios.

Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/ath9k.h
drivers/net/wireless/ath/ath9k/btcoex.c
drivers/net/wireless/ath/ath9k/btcoex.h
drivers/net/wireless/ath/ath9k/hw.c
drivers/net/wireless/ath/ath9k/hw.h

index 1a8d679976677d0031afbf32ff9f7243d8f50609..83f2c8fa88794e3c22137d11e158eba30ec85989 100644 (file)
@@ -611,6 +611,7 @@ struct ath_softc {
        struct ath_bus_ops *bus_ops;
        struct ath_beacon_config cur_beacon_conf;
        struct delayed_work tx_complete_work;
+       struct ath_btcoex_info btcoex_info;
 };
 
 struct ath_wiphy {
index abaf92d8074c97103b1835145f64c1d70fc72b3d..9f19cd1c1bef6a98a37a314923918420114d7a09 100644 (file)
@@ -18,6 +18,8 @@
 
 void ath9k_hw_btcoex_init(struct ath_hw *ah)
 {
+       struct ath_btcoex_info *btcoex_info = &ah->ah_sc->btcoex_info;
+
        /* connect bt_active to baseband */
        REG_CLR_BIT(ah, AR_GPIO_INPUT_EN_VAL,
                        (AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_DEF |
@@ -29,16 +31,18 @@ void ath9k_hw_btcoex_init(struct ath_hw *ah)
        /* Set input mux for bt_active to gpio pin */
        REG_RMW_FIELD(ah, AR_GPIO_INPUT_MUX1,
                        AR_GPIO_INPUT_MUX1_BT_ACTIVE,
-                       ah->btactive_gpio);
+                       btcoex_info->btactive_gpio);
 
        /* Configure the desired gpio port for input */
-       ath9k_hw_cfg_gpio_input(ah, ah->btactive_gpio);
+       ath9k_hw_cfg_gpio_input(ah, btcoex_info->btactive_gpio);
 }
 
 void ath9k_hw_btcoex_enable(struct ath_hw *ah)
 {
+       struct ath_btcoex_info *btcoex_info = &ah->ah_sc->btcoex_info;
+
        /* Configure the desired GPIO port for TX_FRAME output */
-       ath9k_hw_cfg_output(ah, ah->wlanactive_gpio,
+       ath9k_hw_cfg_output(ah, btcoex_info->wlanactive_gpio,
                            AR_GPIO_OUTPUT_MUX_AS_TX_FRAME);
 
        ah->ah_sc->sc_flags |= SC_OP_BTCOEX_ENABLED;
@@ -46,9 +50,11 @@ void ath9k_hw_btcoex_enable(struct ath_hw *ah)
 
 void ath9k_hw_btcoex_disable(struct ath_hw *ah)
 {
-       ath9k_hw_set_gpio(ah, ah->wlanactive_gpio, 0);
+       struct ath_btcoex_info *btcoex_info = &ah->ah_sc->btcoex_info;
+
+       ath9k_hw_set_gpio(ah, btcoex_info->wlanactive_gpio, 0);
 
-       ath9k_hw_cfg_output(ah, ah->wlanactive_gpio,
+       ath9k_hw_cfg_output(ah, btcoex_info->wlanactive_gpio,
                        AR_GPIO_OUTPUT_MUX_AS_OUTPUT);
 
        ah->ah_sc->sc_flags &= ~SC_OP_BTCOEX_ENABLED;
index 99542808b8efaa910a94890c6464d565fc497e98..c80492bac76867111d3f81435dcadc526f590ddc 100644 (file)
 #ifndef BTCOEX_H
 #define BTCOEX_H
 
+#define ATH_WLANACTIVE_GPIO    5
+#define ATH_BTACTIVE_GPIO      6
+
+struct ath_btcoex_info {
+       u8 wlanactive_gpio;
+       u8 btactive_gpio;
+};
+
 void ath9k_hw_btcoex_init(struct ath_hw *ah);
 void ath9k_hw_btcoex_enable(struct ath_hw *ah);
 void ath9k_hw_btcoex_disable(struct ath_hw *ah);
index d7e03f9788c0bb6e023ae0a6a86f1fb0b2de7963..3bb6abd7b2b67c98543eab5d257c42bb073faee3 100644 (file)
@@ -3666,8 +3666,8 @@ void ath9k_hw_fill_cap_info(struct ath_hw *ah)
 
        if (AR_SREV_9280_10_OR_LATER(ah) && btcoex_enable) {
                pCap->hw_caps |= ATH9K_HW_CAP_BT_COEX;
-               ah->btactive_gpio = 6;
-               ah->wlanactive_gpio = 5;
+               ah->ah_sc->btcoex_info.btactive_gpio = ATH_BTACTIVE_GPIO;
+               ah->ah_sc->btcoex_info.wlanactive_gpio = ATH_WLANACTIVE_GPIO;
        }
 }
 
index 32f7c4b86ed31c7f10f3f168bfdb55d73eb39fba..259936c904677adca3e64672446ebfdf3c3ecdfc 100644 (file)
@@ -414,8 +414,6 @@ struct ath_hw {
        u16 rfsilent;
        u32 rfkill_gpio;
        u32 rfkill_polarity;
-       u32 btactive_gpio;
-       u32 wlanactive_gpio;
        u32 ah_flags;
 
        bool htc_reset_init;