diff options
author | Don Fry <donald.h.fry@intel.com> | 2012-03-20 19:36:54 -0400 |
---|---|---|
committer | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2012-04-16 17:35:24 -0400 |
commit | 74fda9715cf611163cbe576a017e6bbaf53966ff (patch) | |
tree | 607d151851e4eeb32fe3a5b95f1a8d9592f3102f /drivers/net | |
parent | 8a8bbdb4de0085b1e89eae33753c80299ab88ff6 (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.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-debugfs.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-shared.h | 3 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-trans-pcie-tx.c | 14 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-trans-pcie.c | 6 |
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 | */ |
163 | struct iwl_shared { | 162 | struct 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 | ||
1253 | static void iwl_trans_pcie_wowlan_suspend(struct iwl_trans *trans) | 1259 | static void iwl_trans_pcie_wowlan_suspend(struct iwl_trans *trans) |