diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2012-10-14 16:36:36 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2012-10-16 16:33:28 +0200 |
commit | ac928f8dc8e8ee6c402f623723cad22a14394277 (patch) | |
tree | 2cb50d0ec15af77e3897e69c981cabf2b71a894c /drivers/net/wireless/iwlwifi | |
parent | 0adb52dee209ee816ba86da51d01977fdb173b22 (diff) | |
download | blackbird-op-linux-ac928f8dc8e8ee6c402f623723cad22a14394277.tar.gz blackbird-op-linux-ac928f8dc8e8ee6c402f623723cad22a14394277.zip |
iwlwifi: first deactivate a queue, then wipe out its data
Doing the opposite is wrong, the SCD wouldn't like someone
to clear its data while the queue is still active.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi')
-rw-r--r-- | drivers/net/wireless/iwlwifi/pcie/tx.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/tx.c b/drivers/net/wireless/iwlwifi/pcie/tx.c index f3c23afbbe63..39ead8cc7e73 100644 --- a/drivers/net/wireless/iwlwifi/pcie/tx.c +++ b/drivers/net/wireless/iwlwifi/pcie/tx.c @@ -491,6 +491,8 @@ void iwl_trans_pcie_txq_disable(struct iwl_trans *trans, int txq_id) return; } + iwl_txq_set_inactive(trans, txq_id); + rd_ptr = iwl_read_prph(trans, SCD_QUEUE_RDPTR(txq_id)) & (n_bd - 1); wr_ptr = iwl_read_prph(trans, SCD_QUEUE_WRPTR(txq_id)); @@ -500,7 +502,6 @@ void iwl_trans_pcie_txq_disable(struct iwl_trans *trans, int txq_id) _iwl_write_targ_mem_dwords(trans, stts_addr, zero_val, ARRAY_SIZE(zero_val)); - iwl_txq_set_inactive(trans, txq_id); IWL_DEBUG_TX_QUEUES(trans, "Deactivate queue %d\n", txq_id); } |