diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2011-07-10 08:39:57 -0400 |
---|---|---|
committer | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2011-07-21 10:29:35 -0400 |
commit | 0286cee0d2b6357e8e30d817bbce8ff166f358b5 (patch) | |
tree | 958218c4b25a816b6093f7a8fded0b1bea0c21f2 /drivers/net | |
parent | 392f8b789a4c96b39d527ff8ea5ceba20cd79d56 (diff) |
iwlagn: move iwl_prepare_card_hw to the transport layer
This function is really related to the transport layer - move it.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.h | 3 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 3 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-trans.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-trans.h | 5 |
5 files changed, 14 insertions, 7 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index d0f6875c64ae..703c106aa8dd 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -3174,7 +3174,7 @@ int iwl_probe(void *bus_specific, struct iwl_bus_ops *bus_ops, | |||
3174 | IWL_INFO(priv, "Detected %s, REV=0x%X\n", | 3174 | IWL_INFO(priv, "Detected %s, REV=0x%X\n", |
3175 | priv->cfg->name, hw_rev); | 3175 | priv->cfg->name, hw_rev); |
3176 | 3176 | ||
3177 | if (iwl_prepare_card_hw(priv)) { | 3177 | if (trans_prepare_card_hw(priv)) { |
3178 | err = -EIO; | 3178 | err = -EIO; |
3179 | IWL_WARN(priv, "Failed, HW not ready\n"); | 3179 | IWL_WARN(priv, "Failed, HW not ready\n"); |
3180 | goto out_free_traffic_mem; | 3180 | goto out_free_traffic_mem; |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.h b/drivers/net/wireless/iwlwifi/iwl-agn.h index ffb6bd2e02a9..496ab99c424d 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.h +++ b/drivers/net/wireless/iwlwifi/iwl-agn.h | |||
@@ -122,9 +122,6 @@ static inline void iwl_set_calib_hdr(struct iwl_calib_hdr *hdr, u8 cmd) | |||
122 | hdr->data_valid = 1; | 122 | hdr->data_valid = 1; |
123 | } | 123 | } |
124 | 124 | ||
125 | /* TODO: this one should be API of the transport layer */ | ||
126 | int iwl_prepare_card_hw(struct iwl_priv *priv); | ||
127 | |||
128 | /* tx queue */ | 125 | /* tx queue */ |
129 | void iwl_free_tfds_in_queue(struct iwl_priv *priv, | 126 | void iwl_free_tfds_in_queue(struct iwl_priv *priv, |
130 | int sta_id, int tid, int freed); | 127 | int sta_id, int tid, int freed); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index ca154344bed1..9a39836c0cd1 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -1236,6 +1236,8 @@ struct iwl_trans; | |||
1236 | * struct iwl_trans_ops - transport specific operations | 1236 | * struct iwl_trans_ops - transport specific operations |
1237 | * @start_device: allocates and inits all the resources for the transport | 1237 | * @start_device: allocates and inits all the resources for the transport |
1238 | * layer. | 1238 | * layer. |
1239 | * @prepare_card_hw: claim the ownership on the HW. Will be called during | ||
1240 | * probe. | ||
1239 | * @tx_start: starts and configures all the Tx fifo - usually done once the fw | 1241 | * @tx_start: starts and configures all the Tx fifo - usually done once the fw |
1240 | * is alive. | 1242 | * is alive. |
1241 | * @stop_device:stops the whole device (embedded CPU put to reset) | 1243 | * @stop_device:stops the whole device (embedded CPU put to reset) |
@@ -1259,6 +1261,7 @@ struct iwl_trans; | |||
1259 | struct iwl_trans_ops { | 1261 | struct iwl_trans_ops { |
1260 | 1262 | ||
1261 | int (*start_device)(struct iwl_priv *priv); | 1263 | int (*start_device)(struct iwl_priv *priv); |
1264 | int (*prepare_card_hw)(struct iwl_priv *priv); | ||
1262 | void (*stop_device)(struct iwl_priv *priv); | 1265 | void (*stop_device)(struct iwl_priv *priv); |
1263 | void (*tx_start)(struct iwl_priv *priv); | 1266 | void (*tx_start)(struct iwl_priv *priv); |
1264 | void (*tx_free)(struct iwl_priv *priv); | 1267 | void (*tx_free)(struct iwl_priv *priv); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.c b/drivers/net/wireless/iwlwifi/iwl-trans.c index e9c7de9f8e0f..88ab20abe253 100644 --- a/drivers/net/wireless/iwlwifi/iwl-trans.c +++ b/drivers/net/wireless/iwlwifi/iwl-trans.c | |||
@@ -647,11 +647,11 @@ static int iwl_set_hw_ready(struct iwl_priv *priv) | |||
647 | } | 647 | } |
648 | 648 | ||
649 | /* Note: returns standard 0/-ERROR code */ | 649 | /* Note: returns standard 0/-ERROR code */ |
650 | int iwl_prepare_card_hw(struct iwl_priv *priv) | 650 | static int iwl_trans_prepare_card_hw(struct iwl_priv *priv) |
651 | { | 651 | { |
652 | int ret; | 652 | int ret; |
653 | 653 | ||
654 | IWL_DEBUG_INFO(priv, "iwl_prepare_card_hw enter\n"); | 654 | IWL_DEBUG_INFO(priv, "iwl_trans_prepare_card_hw enter\n"); |
655 | 655 | ||
656 | ret = iwl_set_hw_ready(priv); | 656 | ret = iwl_set_hw_ready(priv); |
657 | if (ret >= 0) | 657 | if (ret >= 0) |
@@ -682,7 +682,7 @@ static int iwl_trans_start_device(struct iwl_priv *priv) | |||
682 | priv->ucode_owner = IWL_OWNERSHIP_DRIVER; | 682 | priv->ucode_owner = IWL_OWNERSHIP_DRIVER; |
683 | 683 | ||
684 | if ((priv->cfg->sku & EEPROM_SKU_CAP_AMT_ENABLE) && | 684 | if ((priv->cfg->sku & EEPROM_SKU_CAP_AMT_ENABLE) && |
685 | iwl_prepare_card_hw(priv)) { | 685 | iwl_trans_prepare_card_hw(priv)) { |
686 | IWL_WARN(priv, "Exit HW not ready\n"); | 686 | IWL_WARN(priv, "Exit HW not ready\n"); |
687 | return -EIO; | 687 | return -EIO; |
688 | } | 688 | } |
@@ -1123,7 +1123,9 @@ static void iwl_trans_free(struct iwl_priv *priv) | |||
1123 | 1123 | ||
1124 | static const struct iwl_trans_ops trans_ops = { | 1124 | static const struct iwl_trans_ops trans_ops = { |
1125 | .start_device = iwl_trans_start_device, | 1125 | .start_device = iwl_trans_start_device, |
1126 | .prepare_card_hw = iwl_trans_prepare_card_hw, | ||
1126 | .stop_device = iwl_trans_stop_device, | 1127 | .stop_device = iwl_trans_stop_device, |
1128 | |||
1127 | .tx_start = iwl_trans_tx_start, | 1129 | .tx_start = iwl_trans_tx_start, |
1128 | 1130 | ||
1129 | .rx_free = iwl_trans_rx_free, | 1131 | .rx_free = iwl_trans_rx_free, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h index 9e801d8963d1..fca01819f10c 100644 --- a/drivers/net/wireless/iwlwifi/iwl-trans.h +++ b/drivers/net/wireless/iwlwifi/iwl-trans.h | |||
@@ -69,6 +69,11 @@ static inline int trans_start_device(struct iwl_priv *priv) | |||
69 | return priv->trans.ops->start_device(priv); | 69 | return priv->trans.ops->start_device(priv); |
70 | } | 70 | } |
71 | 71 | ||
72 | static inline int trans_prepare_card_hw(struct iwl_priv *priv) | ||
73 | { | ||
74 | return priv->trans.ops->prepare_card_hw(priv); | ||
75 | } | ||
76 | |||
72 | static inline void trans_stop_device(struct iwl_priv *priv) | 77 | static inline void trans_stop_device(struct iwl_priv *priv) |
73 | { | 78 | { |
74 | priv->trans.ops->stop_device(priv); | 79 | priv->trans.ops->stop_device(priv); |