]> git.openfabrics.org - ~shefty/rdma-dev.git/commitdiff
ath9k: split bluetooth hardware coex init into two helpers
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Wed, 9 Sep 2009 09:54:40 +0000 (02:54 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 7 Oct 2009 20:39:20 +0000 (16:39 -0400)
Use a helper for 2-wire and another for 3-wire.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/btcoex.c

index dfbcbd0969e6cc86a7ae8af20b80b571b2592f04..be699241ca75247a6c2b87d1b6538049762661ee 100644 (file)
@@ -225,48 +225,61 @@ static int ath_init_btcoex_info(struct ath_hw *ah,
        return 0;
 }
 
-int ath9k_hw_btcoex_init(struct ath_hw *ah)
+static void ath9k_hw_btcoex_init_2wire(struct ath_hw *ah)
 {
        struct ath_btcoex_info *btcoex_info = &ah->btcoex_info;
-       int ret = 0;
 
-       if (btcoex_info->btcoex_scheme == ATH_BTCOEX_CFG_2WIRE) {
-               /* connect bt_active to baseband */
-               REG_CLR_BIT(ah, AR_GPIO_INPUT_EN_VAL,
-                               (AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_DEF |
-                                AR_GPIO_INPUT_EN_VAL_BT_FREQUENCY_DEF));
+       /* connect bt_active to baseband */
+       REG_CLR_BIT(ah, AR_GPIO_INPUT_EN_VAL,
+                   (AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_DEF |
+                    AR_GPIO_INPUT_EN_VAL_BT_FREQUENCY_DEF));
 
-               REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL,
-                               AR_GPIO_INPUT_EN_VAL_BT_ACTIVE_BB);
+       REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL,
+                   AR_GPIO_INPUT_EN_VAL_BT_ACTIVE_BB);
 
-               /* Set input mux for bt_active to gpio pin */
-               REG_RMW_FIELD(ah, AR_GPIO_INPUT_MUX1,
-                               AR_GPIO_INPUT_MUX1_BT_ACTIVE,
-                               btcoex_info->btactive_gpio);
+       /* Set input mux for bt_active to gpio pin */
+       REG_RMW_FIELD(ah, AR_GPIO_INPUT_MUX1,
+                     AR_GPIO_INPUT_MUX1_BT_ACTIVE,
+                     btcoex_info->btactive_gpio);
 
-               /* Configure the desired gpio port for input */
-               ath9k_hw_cfg_gpio_input(ah, btcoex_info->btactive_gpio);
-       } else {
-               /* btcoex 3-wire */
-               REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL,
-                               (AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_BB |
-                                AR_GPIO_INPUT_EN_VAL_BT_ACTIVE_BB));
+       /* Configure the desired gpio port for input */
+       ath9k_hw_cfg_gpio_input(ah, btcoex_info->btactive_gpio);
+}
+
+static void ath9k_hw_btcoex_init_3wire(struct ath_hw *ah)
+{
+       struct ath_btcoex_info *btcoex_info = &ah->btcoex_info;
 
-               /* Set input mux for bt_prority_async and
-                *                  bt_active_async to GPIO pins */
-               REG_RMW_FIELD(ah, AR_GPIO_INPUT_MUX1,
-                               AR_GPIO_INPUT_MUX1_BT_ACTIVE,
-                               btcoex_info->btactive_gpio);
+       /* btcoex 3-wire */
+       REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL,
+                       (AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_BB |
+                        AR_GPIO_INPUT_EN_VAL_BT_ACTIVE_BB));
 
-               REG_RMW_FIELD(ah, AR_GPIO_INPUT_MUX1,
-                               AR_GPIO_INPUT_MUX1_BT_PRIORITY,
-                               btcoex_info->btpriority_gpio);
+       /* Set input mux for bt_prority_async and
+        *                  bt_active_async to GPIO pins */
+       REG_RMW_FIELD(ah, AR_GPIO_INPUT_MUX1,
+                       AR_GPIO_INPUT_MUX1_BT_ACTIVE,
+                       btcoex_info->btactive_gpio);
 
-               /* Configure the desired GPIO ports for input */
+       REG_RMW_FIELD(ah, AR_GPIO_INPUT_MUX1,
+                       AR_GPIO_INPUT_MUX1_BT_PRIORITY,
+                       btcoex_info->btpriority_gpio);
 
-               ath9k_hw_cfg_gpio_input(ah, btcoex_info->btactive_gpio);
-               ath9k_hw_cfg_gpio_input(ah, btcoex_info->btpriority_gpio);
+       /* Configure the desired GPIO ports for input */
+
+       ath9k_hw_cfg_gpio_input(ah, btcoex_info->btactive_gpio);
+       ath9k_hw_cfg_gpio_input(ah, btcoex_info->btpriority_gpio);
+}
+
+int ath9k_hw_btcoex_init(struct ath_hw *ah)
+{
+       struct ath_btcoex_info *btcoex_info = &ah->btcoex_info;
+       int ret = 0;
 
+       if (btcoex_info->btcoex_scheme == ATH_BTCOEX_CFG_2WIRE)
+               ath9k_hw_btcoex_init_2wire(ah);
+       else {
+               ath9k_hw_btcoex_init_3wire(ah);
                ret = ath_init_btcoex_info(ah, btcoex_info);
        }