diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2014-03-24 05:23:51 -0400 |
---|---|---|
committer | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2014-04-13 02:35:58 -0400 |
commit | 3cafdbe6ad6ff0af74cf7953737475732d34ca66 (patch) | |
tree | e0f504f16fd4a1d7e65640ce295829792efe17c2 /drivers/net/wireless/iwlwifi/pcie | |
parent | d13c8dca67e0ae1a529978849886525f9bdbabbc (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.c | 6 |
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 | ||
1260 | static int iwl_trans_pcie_wait_txq_empty(struct iwl_trans *trans) | 1260 | static 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, |