summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
diff options
context:
space:
mode:
authorEmmanuel Grumbach2015-11-24 12:24:24 +0100
committerEmmanuel Grumbach2015-12-13 07:52:52 +0100
commit0cd58eaab1482ab75800f68cd0033286232827f1 (patch)
treee16105c724436a3570207218b0e5977e4915c6f6 /drivers/net/wireless/intel/iwlwifi/pcie/tx.c
parentiwlwifi: mvm: check iwl_mvm_wowlan_config_key_params() return value (diff)
downloadkernel-qcow2-linux-0cd58eaab1482ab75800f68cd0033286232827f1.tar.gz
kernel-qcow2-linux-0cd58eaab1482ab75800f68cd0033286232827f1.tar.xz
kernel-qcow2-linux-0cd58eaab1482ab75800f68cd0033286232827f1.zip
iwlwifi: pcie: allow the op_mode to block the tx queues
In certain flows (see next patches), the op_mode may need to block the Tx queues for a short period. Provide an API for that. The transport is in charge of counting the number of times the queues are blocked since the op_mode may block the queues several times in a row before unblocking them. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/pcie/tx.c')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/pcie/tx.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
index a8c8a4a7420b..95ba920edb1d 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
@@ -318,7 +318,9 @@ static void iwl_pcie_txq_inc_wr_ptr(struct iwl_trans *trans,
* trying to tx (during RFKILL, we're not trying to tx).
*/
IWL_DEBUG_TX(trans, "Q:%d WR: 0x%x\n", txq_id, txq->q.write_ptr);
- iwl_write32(trans, HBUS_TARG_WRPTR, txq->q.write_ptr | (txq_id << 8));
+ if (!txq->block)
+ iwl_write32(trans, HBUS_TARG_WRPTR,
+ txq->q.write_ptr | (txq_id << 8));
}
void iwl_pcie_txq_check_wrptrs(struct iwl_trans *trans)