iwlwifi: move prepare_card_hw to start_hw
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Sun, 8 Jan 2012 11:24:57 +0000 (13:24 +0200)
committerWey-Yi Guy <wey-yi.w.guy@intel.com>
Thu, 2 Feb 2012 22:36:24 +0000 (14:36 -0800)
Kill the trans_ops->prepare_card_hw which is now useless.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
drivers/net/wireless/iwlwifi/iwl-trans.h

index 1c00691c9f0fa409a72880b2223ad4665e8f0f9c..5ab7f681991ecb63f38fd5b63fa473149de21c97 100644 (file)
@@ -1833,12 +1833,6 @@ int iwl_probe(struct iwl_bus *bus, const struct iwl_trans_ops *trans_ops,
        if (err)
                goto out_free_traffic_mem;
 
-       if (iwl_trans_prepare_card_hw(trans(priv))) {
-               err = -EIO;
-               IWL_WARN(priv, "Failed, HW not ready\n");
-               goto out_free_traffic_mem;
-       }
-
        /*****************
         * 4. Read EEPROM
         *****************/
index ffbafb9e447bd72a3460d6ed8d51da018b60670c..d1ab57a7988f51f26ad31bf33826ddee15e8f74f 100644 (file)
@@ -690,13 +690,14 @@ static int iwl_set_hw_ready(struct iwl_trans *trans)
 }
 
 /* Note: returns standard 0/-ERROR code */
-static int iwl_trans_pcie_prepare_card_hw(struct iwl_trans *trans)
+static int iwl_prepare_card_hw(struct iwl_trans *trans)
 {
        int ret;
 
        IWL_DEBUG_INFO(trans, "iwl_trans_prepare_card_hw enter\n");
 
        ret = iwl_set_hw_ready(trans);
+       /* If the card is ready, exit 0 */
        if (ret >= 0)
                return 0;
 
@@ -788,7 +789,7 @@ static int iwl_trans_pcie_start_device(struct iwl_trans *trans)
        trans_pcie->mcast_queue[IWL_RXON_CTX_PAN] = IWL_IPAN_MCAST_QUEUE;
 
        if ((hw_params(trans).sku & EEPROM_SKU_CAP_AMT_ENABLE) &&
-            iwl_trans_pcie_prepare_card_hw(trans)) {
+            iwl_prepare_card_hw(trans)) {
                IWL_WARN(trans, "Exit HW not ready\n");
                return -EIO;
        }
@@ -1254,16 +1255,24 @@ static int iwl_trans_pcie_start_hw(struct iwl_trans *trans)
                if (err) {
                        IWL_ERR(trans, "Error allocating IRQ %d\n",
                                trans->irq);
-                       iwl_free_isr_ict(trans);
-                       tasklet_kill(&trans_pcie->irq_tasklet);
-                       return err;
+                       goto error;
                }
 
                INIT_WORK(&trans_pcie->rx_replenish, iwl_bg_rx_replenish);
                trans_pcie->irq_requested = true;
        }
 
-       return 0;
+       err = iwl_prepare_card_hw(trans);
+       if (err) {
+               IWL_ERR(trans, "Error while preparing HW: %d", err);
+               goto error;
+       }
+       return err;
+
+error:
+       iwl_free_isr_ict(trans);
+       tasklet_kill(&trans_pcie->irq_tasklet);
+       return err;
 }
 
 static int iwl_trans_pcie_reclaim(struct iwl_trans *trans, int sta_id, int tid,
@@ -1931,7 +1940,6 @@ const struct iwl_trans_ops trans_ops_pcie = {
        .start_hw = iwl_trans_pcie_start_hw,
        .fw_alive = iwl_trans_pcie_fw_alive,
        .start_device = iwl_trans_pcie_start_device,
-       .prepare_card_hw = iwl_trans_pcie_prepare_card_hw,
        .stop_device = iwl_trans_pcie_stop_device,
 
        .wake_any_queue = iwl_trans_pcie_wake_any_queue,
index ddc3a0627dd3d6082b076a55ae7b497c7aefdd3c..55b5dc3b5dd675c3478fa470e711e2b6c1281c92 100644 (file)
@@ -136,8 +136,6 @@ struct iwl_host_cmd {
  * @start_hw: starts the HW- from that point on, the HW can send interrupts
  * @start_device: allocates and inits all the resources for the transport
  *                layer.
- * @prepare_card_hw: claim the ownership on the HW. Will be called during
- *                   probe.
  * @fw_alive: called when the fw sends alive notification
  * @wake_any_queue: wake all the queues of a specfic context IWL_RXON_CTX_*
  * @stop_device:stops the whole device (embedded CPU put to reset)
@@ -167,7 +165,6 @@ struct iwl_trans_ops {
        int (*start_hw)(struct iwl_trans *iwl_trans);
        int (*start_device)(struct iwl_trans *trans);
        void (*fw_alive)(struct iwl_trans *trans);
-       int (*prepare_card_hw)(struct iwl_trans *trans);
        void (*stop_device)(struct iwl_trans *trans);
 
        void (*wake_any_queue)(struct iwl_trans *trans,
@@ -284,11 +281,6 @@ static inline int iwl_trans_start_device(struct iwl_trans *trans)
        return trans->ops->start_device(trans);
 }
 
-static inline int iwl_trans_prepare_card_hw(struct iwl_trans *trans)
-{
-       return trans->ops->prepare_card_hw(trans);
-}
-
 static inline void iwl_trans_stop_device(struct iwl_trans *trans)
 {
        trans->ops->stop_device(trans);