aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/pcie
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2014-03-24 05:23:51 -0400
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2014-04-13 02:35:58 -0400
commit3cafdbe6ad6ff0af74cf7953737475732d34ca66 (patch)
treee0f504f16fd4a1d7e65640ce295829792efe17c2 /drivers/net/wireless/iwlwifi/pcie
parentd13c8dca67e0ae1a529978849886525f9bdbabbc (diff)
iwlwifi: allow to wait for a subset of the queues
This will be used later to flush / wait for queues that are related to a specific vif. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/pcie')
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/trans.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
index 2548f49fedb1..0f20e73b2596 100644
--- a/drivers/net/wireless/iwlwifi/pcie/trans.c
+++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
@@ -1257,7 +1257,7 @@ static int iwl_trans_pcie_write_mem(struct iwl_trans *trans, u32 addr,
1257 1257
1258#define IWL_FLUSH_WAIT_MS 2000 1258#define IWL_FLUSH_WAIT_MS 2000
1259 1259
1260static int iwl_trans_pcie_wait_txq_empty(struct iwl_trans *trans) 1260static int iwl_trans_pcie_wait_txq_empty(struct iwl_trans *trans, u32 txq_bm)
1261{ 1261{
1262 struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); 1262 struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
1263 struct iwl_txq *txq; 1263 struct iwl_txq *txq;
@@ -1272,6 +1272,10 @@ static int iwl_trans_pcie_wait_txq_empty(struct iwl_trans *trans)
1272 for (cnt = 0; cnt < trans->cfg->base_params->num_of_queues; cnt++) { 1272 for (cnt = 0; cnt < trans->cfg->base_params->num_of_queues; cnt++) {
1273 if (cnt == trans_pcie->cmd_queue) 1273 if (cnt == trans_pcie->cmd_queue)
1274 continue; 1274 continue;
1275 if (!test_bit(cnt, trans_pcie->queue_used))
1276 continue;
1277 if (!(BIT(cnt) & txq_bm))
1278 continue;
1275 txq = &trans_pcie->txq[cnt]; 1279 txq = &trans_pcie->txq[cnt];
1276 q = &txq->q; 1280 q = &txq->q;
1277 while (q->read_ptr != q->write_ptr && !time_after(jiffies, 1281 while (q->read_ptr != q->write_ptr && !time_after(jiffies,