aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorDon Fry <donald.h.fry@intel.com>2012-03-20 19:36:54 -0400
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2012-04-16 17:35:24 -0400
commit74fda9715cf611163cbe576a017e6bbaf53966ff (patch)
tree607d151851e4eeb32fe3a5b95f1a8d9592f3102f /drivers/net
parent8a8bbdb4de0085b1e89eae33753c80299ab88ff6 (diff)
iwlwifi: move HCMD_ACTIVE to trans
The HCMD_ACTIVE bit is only used in trans. Signed-off-by: Don Fry <donald.h.fry@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.c5
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-debugfs.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-shared.h3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c5
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c14
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans-pcie.c6
6 files changed, 18 insertions, 17 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index a88130fb5520..6b1a03968583 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -1887,7 +1887,7 @@ static void iwl_dump_nic_error_log(struct iwl_priv *priv)
1887 if (ERROR_START_OFFSET <= table.valid * ERROR_ELEM_SIZE) { 1887 if (ERROR_START_OFFSET <= table.valid * ERROR_ELEM_SIZE) {
1888 IWL_ERR(trans, "Start IWL Error Log Dump:\n"); 1888 IWL_ERR(trans, "Start IWL Error Log Dump:\n");
1889 IWL_ERR(trans, "Status: 0x%08lX, count: %d\n", 1889 IWL_ERR(trans, "Status: 0x%08lX, count: %d\n",
1890 priv->shrd->status, table.valid); 1890 priv->status, table.valid);
1891 } 1891 }
1892 1892
1893 trace_iwlwifi_dev_ucode_error(trans->dev, table.error_id, table.tsf_low, 1893 trace_iwlwifi_dev_ucode_error(trans->dev, table.error_id, table.tsf_low,
@@ -2177,9 +2177,6 @@ static void iwlagn_fw_error(struct iwl_priv *priv, bool ondemand)
2177 /* Set the FW error flag -- cleared on iwl_down */ 2177 /* Set the FW error flag -- cleared on iwl_down */
2178 set_bit(STATUS_FW_ERROR, &priv->status); 2178 set_bit(STATUS_FW_ERROR, &priv->status);
2179 2179
2180 /* Cancel currently queued command. */
2181 clear_bit(STATUS_HCMD_ACTIVE, &priv->shrd->status);
2182
2183 iwl_abort_notification_waits(&priv->notif_wait); 2180 iwl_abort_notification_waits(&priv->notif_wait);
2184 2181
2185 /* Keep the restart process from trying to send host 2182 /* Keep the restart process from trying to send host
diff --git a/drivers/net/wireless/iwlwifi/iwl-debugfs.c b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
index 29a4ccf1743d..a77f45790e3c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-debugfs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
@@ -526,8 +526,6 @@ static ssize_t iwl_dbgfs_status_read(struct file *file,
526 int pos = 0; 526 int pos = 0;
527 const size_t bufsz = sizeof(buf); 527 const size_t bufsz = sizeof(buf);
528 528
529 pos += scnprintf(buf + pos, bufsz - pos, "STATUS_HCMD_ACTIVE:\t %d\n",
530 test_bit(STATUS_HCMD_ACTIVE, &priv->shrd->status));
531 pos += scnprintf(buf + pos, bufsz - pos, "STATUS_RF_KILL_HW:\t %d\n", 529 pos += scnprintf(buf + pos, bufsz - pos, "STATUS_RF_KILL_HW:\t %d\n",
532 test_bit(STATUS_RF_KILL_HW, &priv->status)); 530 test_bit(STATUS_RF_KILL_HW, &priv->status));
533 pos += scnprintf(buf + pos, bufsz - pos, "STATUS_CT_KILL:\t\t %d\n", 531 pos += scnprintf(buf + pos, bufsz - pos, "STATUS_CT_KILL:\t\t %d\n",
diff --git a/drivers/net/wireless/iwlwifi/iwl-shared.h b/drivers/net/wireless/iwlwifi/iwl-shared.h
index 428883b0e7cf..2fe3145575f9 100644
--- a/drivers/net/wireless/iwlwifi/iwl-shared.h
+++ b/drivers/net/wireless/iwlwifi/iwl-shared.h
@@ -150,7 +150,6 @@ struct iwl_mod_params {
150/** 150/**
151 * struct iwl_shared - shared fields for all the layers of the driver 151 * struct iwl_shared - shared fields for all the layers of the driver
152 * 152 *
153 * @status: STATUS_*
154 * @wowlan: are we running wowlan uCode 153 * @wowlan: are we running wowlan uCode
155 * @bus: pointer to the bus layer data 154 * @bus: pointer to the bus layer data
156 * @cfg: see struct iwl_cfg 155 * @cfg: see struct iwl_cfg
@@ -161,8 +160,6 @@ struct iwl_mod_params {
161 * @eeprom: pointer to the eeprom/OTP image 160 * @eeprom: pointer to the eeprom/OTP image
162 */ 161 */
163struct iwl_shared { 162struct iwl_shared {
164 unsigned long status;
165
166 const struct iwl_cfg *cfg; 163 const struct iwl_cfg *cfg;
167 struct iwl_trans *trans; 164 struct iwl_trans *trans;
168 void *drv; 165 void *drv;
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
index e1af031fccdd..96ca5ade9278 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
@@ -547,7 +547,10 @@ static void iwl_irq_handle_error(struct iwl_trans *trans)
547 APMS_CLK_VAL_MRB_FUNC_MODE) || 547 APMS_CLK_VAL_MRB_FUNC_MODE) ||
548 (iwl_read_prph(trans, APMG_PS_CTRL_REG) & 548 (iwl_read_prph(trans, APMG_PS_CTRL_REG) &
549 APMG_PS_CTRL_VAL_RESET_REQ))) { 549 APMG_PS_CTRL_VAL_RESET_REQ))) {
550 clear_bit(STATUS_HCMD_ACTIVE, &trans->shrd->status); 550 struct iwl_trans_pcie *trans_pcie;
551
552 trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
553 clear_bit(STATUS_HCMD_ACTIVE, &trans_pcie->status);
551 iwl_op_mode_wimax_active(trans->op_mode); 554 iwl_op_mode_wimax_active(trans->op_mode);
552 wake_up(&trans->wait_command_queue); 555 wake_up(&trans->wait_command_queue);
553 return; 556 return;
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c
index c34eac062762..2bc267074f69 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c
@@ -792,12 +792,12 @@ void iwl_tx_cmd_complete(struct iwl_trans *trans, struct iwl_rx_cmd_buffer *rxb,
792 iwl_hcmd_queue_reclaim(trans, txq_id, index); 792 iwl_hcmd_queue_reclaim(trans, txq_id, index);
793 793
794 if (!(meta->flags & CMD_ASYNC)) { 794 if (!(meta->flags & CMD_ASYNC)) {
795 if (!test_bit(STATUS_HCMD_ACTIVE, &trans->shrd->status)) { 795 if (!test_bit(STATUS_HCMD_ACTIVE, &trans_pcie->status)) {
796 IWL_WARN(trans, 796 IWL_WARN(trans,
797 "HCMD_ACTIVE already clear for command %s\n", 797 "HCMD_ACTIVE already clear for command %s\n",
798 get_cmd_string(cmd->hdr.cmd)); 798 get_cmd_string(cmd->hdr.cmd));
799 } 799 }
800 clear_bit(STATUS_HCMD_ACTIVE, &trans->shrd->status); 800 clear_bit(STATUS_HCMD_ACTIVE, &trans_pcie->status);
801 IWL_DEBUG_INFO(trans, "Clearing HCMD_ACTIVE for command %s\n", 801 IWL_DEBUG_INFO(trans, "Clearing HCMD_ACTIVE for command %s\n",
802 get_cmd_string(cmd->hdr.cmd)); 802 get_cmd_string(cmd->hdr.cmd));
803 wake_up(&trans->wait_command_queue); 803 wake_up(&trans->wait_command_queue);
@@ -839,7 +839,7 @@ static int iwl_send_cmd_sync(struct iwl_trans *trans, struct iwl_host_cmd *cmd)
839 get_cmd_string(cmd->id)); 839 get_cmd_string(cmd->id));
840 840
841 if (WARN_ON(test_and_set_bit(STATUS_HCMD_ACTIVE, 841 if (WARN_ON(test_and_set_bit(STATUS_HCMD_ACTIVE,
842 &trans->shrd->status))) { 842 &trans_pcie->status))) {
843 IWL_ERR(trans, "Command %s: a command is already active!\n", 843 IWL_ERR(trans, "Command %s: a command is already active!\n",
844 get_cmd_string(cmd->id)); 844 get_cmd_string(cmd->id));
845 return -EIO; 845 return -EIO;
@@ -851,7 +851,7 @@ static int iwl_send_cmd_sync(struct iwl_trans *trans, struct iwl_host_cmd *cmd)
851 cmd_idx = iwl_enqueue_hcmd(trans, cmd); 851 cmd_idx = iwl_enqueue_hcmd(trans, cmd);
852 if (cmd_idx < 0) { 852 if (cmd_idx < 0) {
853 ret = cmd_idx; 853 ret = cmd_idx;
854 clear_bit(STATUS_HCMD_ACTIVE, &trans->shrd->status); 854 clear_bit(STATUS_HCMD_ACTIVE, &trans_pcie->status);
855 IWL_ERR(trans, 855 IWL_ERR(trans,
856 "Error sending %s: enqueue_hcmd failed: %d\n", 856 "Error sending %s: enqueue_hcmd failed: %d\n",
857 get_cmd_string(cmd->id), ret); 857 get_cmd_string(cmd->id), ret);
@@ -859,10 +859,10 @@ static int iwl_send_cmd_sync(struct iwl_trans *trans, struct iwl_host_cmd *cmd)
859 } 859 }
860 860
861 ret = wait_event_timeout(trans->wait_command_queue, 861 ret = wait_event_timeout(trans->wait_command_queue,
862 !test_bit(STATUS_HCMD_ACTIVE, &trans->shrd->status), 862 !test_bit(STATUS_HCMD_ACTIVE, &trans_pcie->status),
863 HOST_COMPLETE_TIMEOUT); 863 HOST_COMPLETE_TIMEOUT);
864 if (!ret) { 864 if (!ret) {
865 if (test_bit(STATUS_HCMD_ACTIVE, &trans->shrd->status)) { 865 if (test_bit(STATUS_HCMD_ACTIVE, &trans_pcie->status)) {
866 struct iwl_tx_queue *txq = 866 struct iwl_tx_queue *txq =
867 &trans_pcie->txq[trans_pcie->cmd_queue]; 867 &trans_pcie->txq[trans_pcie->cmd_queue];
868 struct iwl_queue *q = &txq->q; 868 struct iwl_queue *q = &txq->q;
@@ -876,7 +876,7 @@ static int iwl_send_cmd_sync(struct iwl_trans *trans, struct iwl_host_cmd *cmd)
876 "Current CMD queue read_ptr %d write_ptr %d\n", 876 "Current CMD queue read_ptr %d write_ptr %d\n",
877 q->read_ptr, q->write_ptr); 877 q->read_ptr, q->write_ptr);
878 878
879 clear_bit(STATUS_HCMD_ACTIVE, &trans->shrd->status); 879 clear_bit(STATUS_HCMD_ACTIVE, &trans_pcie->status);
880 IWL_DEBUG_INFO(trans, "Clearing HCMD_ACTIVE for command" 880 IWL_DEBUG_INFO(trans, "Clearing HCMD_ACTIVE for command"
881 "%s\n", get_cmd_string(cmd->id)); 881 "%s\n", get_cmd_string(cmd->id));
882 ret = -ETIMEDOUT; 882 ret = -ETIMEDOUT;
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
index 914b6d5df9b2..1b7c846b3757 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
@@ -1248,6 +1248,12 @@ static void iwl_trans_pcie_stop_device(struct iwl_trans *trans)
1248 1248
1249 /* stop and reset the on-board processor */ 1249 /* stop and reset the on-board processor */
1250 iwl_write32(trans, CSR_RESET, CSR_RESET_REG_FLAG_NEVO_RESET); 1250 iwl_write32(trans, CSR_RESET, CSR_RESET_REG_FLAG_NEVO_RESET);
1251
1252 /* clear all status bits */
1253 clear_bit(STATUS_HCMD_ACTIVE, &trans_pcie->status);
1254 clear_bit(STATUS_INT_ENABLED, &trans_pcie->status);
1255 clear_bit(STATUS_DEVICE_ENABLED, &trans_pcie->status);
1256 clear_bit(STATUS_POWER_PMI, &trans_pcie->status);
1251} 1257}
1252 1258
1253static void iwl_trans_pcie_wowlan_suspend(struct iwl_trans *trans) 1259static void iwl_trans_pcie_wowlan_suspend(struct iwl_trans *trans)