aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2011-07-10 08:39:57 -0400
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2011-07-21 10:29:35 -0400
commit0286cee0d2b6357e8e30d817bbce8ff166f358b5 (patch)
tree958218c4b25a816b6093f7a8fded0b1bea0c21f2 /drivers/net
parent392f8b789a4c96b39d527ff8ea5ceba20cd79d56 (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.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.h3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans.c8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans.h5
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 */
126int iwl_prepare_card_hw(struct iwl_priv *priv);
127
128/* tx queue */ 125/* tx queue */
129void iwl_free_tfds_in_queue(struct iwl_priv *priv, 126void 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;
1259struct iwl_trans_ops { 1261struct 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 */
650int iwl_prepare_card_hw(struct iwl_priv *priv) 650static 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
1124static const struct iwl_trans_ops trans_ops = { 1124static 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
72static inline int trans_prepare_card_hw(struct iwl_priv *priv)
73{
74 return priv->trans.ops->prepare_card_hw(priv);
75}
76
72static inline void trans_stop_device(struct iwl_priv *priv) 77static 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);