linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
To: linville@tuxdriver.com
Cc: linux-wireless@vger.kernel.org,
	Emmanuel Grumbach <emmanuel.grumbach@intel.com>,
	Wey-Yi Guy <wey-yi.w.guy@intel.com>
Subject: [PATCH 12/28] iwlwifi: move prepare_card_hw to start_hw
Date: Thu,  2 Feb 2012 15:09:03 -0800	[thread overview]
Message-ID: <1328224159-18134-13-git-send-email-wey-yi.w.guy@intel.com> (raw)
In-Reply-To: <1328224159-18134-1-git-send-email-wey-yi.w.guy@intel.com>

From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>

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        |    6 ------
 drivers/net/wireless/iwlwifi/iwl-trans-pcie.c |   22 +++++++++++++++-------
 drivers/net/wireless/iwlwifi/iwl-trans.h      |    8 --------
 3 files changed, 15 insertions(+), 21 deletions(-)

diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 1c00691..5ab7f68 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -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
 	 *****************/
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
index ffbafb9..d1ab57a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
@@ -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,
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h
index ddc3a06..55b5dc3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans.h
+++ b/drivers/net/wireless/iwlwifi/iwl-trans.h
@@ -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);
-- 
1.7.0.4


  parent reply	other threads:[~2012-02-03  0:16 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-02 23:08 [PATCH 00/28] update for 3.4: iwlwifi 2012-02-02 Wey-Yi Guy
2012-02-02 23:08 ` [PATCH 01/28] iwlwifi: add fw_alive to transport layer API, kill tx_start Wey-Yi Guy
2012-02-02 23:08 ` [PATCH 02/28] iwlwifi: Connect IDI transport to driver Wey-Yi Guy
2012-02-02 23:08 ` [PATCH 03/28] iwlwifi: separate the APM from the EEPROM Wey-Yi Guy
2012-02-02 23:08 ` [PATCH 04/28] iwlwifi: move the shrd memory from priv Wey-Yi Guy
2012-02-02 23:08 ` [PATCH 05/28] iwlwifi: allocate the transport from the bus layer Wey-Yi Guy
2012-02-02 23:08 ` [PATCH 06/28] iwlwifi: move the bus configuration to transport Wey-Yi Guy
2012-02-02 23:08 ` [PATCH 07/28] iwlwifi: the read / write register ops move " Wey-Yi Guy
2012-02-02 23:08 ` [PATCH 08/28] iwlwifi: give trans to all the read / write functions Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 09/28] iwlwifi: remove the pointer to dev from the bus layer Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 10/28] iwlwifi: don't use the bus for ucode fw_desc any more Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 11/28] iwlwifi: rename trans_ops->request_irq to trans_ops->start_hw Wey-Yi Guy
2012-02-02 23:09 ` Wey-Yi Guy [this message]
2012-02-02 23:09 ` [PATCH 13/28] iwlwifi: move apm_init to start_hw Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 14/28] iwlwifi: introduce trans_ops->stop_hw Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 15/28] iwlwifi: move the RF kill logic from iwl_probe to transport Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 16/28] iwlwifi: consolidate the start_device flow Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 17/28] iwlwifi: kill bus_apm_config Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 18/28] iwlwifi: kill bus_is_pm_supported Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 19/28] iwlwifi: kill bus_get_hw_id_string Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 20/28] iwlwifi: kill bus_get_hw_id Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 21/28] iwlwifi: move hw_rev to transport layer Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 22/28] iwlwifi: stop_hw replace enable_rfkill_int Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 23/28] iwlwifi: debug print in tx_queue_set_status is more clear Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 24/28] iwlwifi: clarify comment Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 25/28] iwlwifi: move bcast_sta_id init to common routine Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 26/28] iwlwifi: move all ucode routines to iwl-ucode.c Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 27/28] iwlwifi: release IRQ in error path Wey-Yi Guy
2012-02-02 23:09 ` [PATCH 28/28] iwlwifi: range check to testmode direct reg access Wey-Yi Guy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1328224159-18134-13-git-send-email-wey-yi.w.guy@intel.com \
    --to=wey-yi.w.guy@intel.com \
    --cc=emmanuel.grumbach@intel.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).