aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/pcie/tx.c
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2012-10-15 11:57:36 -0400
committerJohannes Berg <johannes.berg@intel.com>2012-10-16 10:41:40 -0400
commit4e760f1ab267edcd6e4b232ff732fc9cdc659ebb (patch)
tree92b3247dd43fc9490a3a099782e5da92c0964ba4 /drivers/net/wireless/iwlwifi/pcie/tx.c
parent378b8f7f3b767974c726dee92a9bb3d15b7a66b3 (diff)
iwlwifi: don't WARN when a non empty queue is disabled
This can happen when we shut down suddenly an interface. 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/pcie/tx.c')
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/tx.c8
1 files changed, 0 insertions, 8 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/tx.c b/drivers/net/wireless/iwlwifi/pcie/tx.c
index 39ead8cc7e73..db3efbb84d92 100644
--- a/drivers/net/wireless/iwlwifi/pcie/tx.c
+++ b/drivers/net/wireless/iwlwifi/pcie/tx.c
@@ -480,11 +480,9 @@ void iwl_trans_pcie_txq_enable(struct iwl_trans *trans, int txq_id, int fifo,
480void iwl_trans_pcie_txq_disable(struct iwl_trans *trans, int txq_id) 480void iwl_trans_pcie_txq_disable(struct iwl_trans *trans, int txq_id)
481{ 481{
482 struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); 482 struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
483 u16 rd_ptr, wr_ptr;
484 u32 stts_addr = trans_pcie->scd_base_addr + 483 u32 stts_addr = trans_pcie->scd_base_addr +
485 SCD_TX_STTS_QUEUE_OFFSET(txq_id); 484 SCD_TX_STTS_QUEUE_OFFSET(txq_id);
486 static const u32 zero_val[4] = {}; 485 static const u32 zero_val[4] = {};
487 int n_bd = trans_pcie->txq[txq_id].q.n_bd;
488 486
489 if (!test_and_clear_bit(txq_id, trans_pcie->queue_used)) { 487 if (!test_and_clear_bit(txq_id, trans_pcie->queue_used)) {
490 WARN_ONCE(1, "queue %d not used", txq_id); 488 WARN_ONCE(1, "queue %d not used", txq_id);
@@ -493,12 +491,6 @@ void iwl_trans_pcie_txq_disable(struct iwl_trans *trans, int txq_id)
493 491
494 iwl_txq_set_inactive(trans, txq_id); 492 iwl_txq_set_inactive(trans, txq_id);
495 493
496 rd_ptr = iwl_read_prph(trans, SCD_QUEUE_RDPTR(txq_id)) & (n_bd - 1);
497 wr_ptr = iwl_read_prph(trans, SCD_QUEUE_WRPTR(txq_id));
498
499 WARN_ONCE(rd_ptr != wr_ptr, "queue %d isn't empty: [%d,%d]",
500 txq_id, rd_ptr, wr_ptr);
501
502 _iwl_write_targ_mem_dwords(trans, stts_addr, 494 _iwl_write_targ_mem_dwords(trans, stts_addr,
503 zero_val, ARRAY_SIZE(zero_val)); 495 zero_val, ARRAY_SIZE(zero_val));
504 496