summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2014-08-01 13:33:46 +0200
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2014-09-03 22:49:06 +0300
commit64ba893066528a03d7d21d7e187005748027a309 (patch)
treefb29f1b907c2825d235e83aa09dd948109b68e7d
parentd4578ea810ce468fdb8e1b7014818c31db9be5e2 (diff)
downloadop-kernel-dev-64ba893066528a03d7d21d7e187005748027a309.zip
op-kernel-dev-64ba893066528a03d7d21d7e187005748027a309.tar.gz
iwlwifi: trans: make aggregation explicit for TX queue handling
Currently a valid sta_id is assumed to mean that the queue is meant to also be aggregated, but that assumption will not be true in the future, so don't make it in the lower level but only in the inline wrapper. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans.h3
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/tx.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h
index dd3aefc..7e8dc3a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans.h
+++ b/drivers/net/wireless/iwlwifi/iwl-trans.h
@@ -405,6 +405,7 @@ struct iwl_trans_txq_scd_cfg {
u8 fifo;
s8 sta_id;
u8 tid;
+ bool aggregate;
int frame_limit;
};
@@ -803,6 +804,7 @@ static inline void iwl_trans_txq_enable(struct iwl_trans *trans, int queue,
.sta_id = sta_id,
.tid = tid,
.frame_limit = frame_limit,
+ .aggregate = sta_id >= 0,
};
iwl_trans_txq_enable_cfg(trans, queue, ssn, &cfg);
@@ -816,6 +818,7 @@ static inline void iwl_trans_ac_txq_enable(struct iwl_trans *trans, int queue,
.sta_id = -1,
.tid = IWL_MAX_TID_COUNT,
.frame_limit = IWL_FRAME_LIMIT,
+ .aggregate = false,
};
iwl_trans_txq_enable_cfg(trans, queue, 0, &cfg);
diff --git a/drivers/net/wireless/iwlwifi/pcie/tx.c b/drivers/net/wireless/iwlwifi/pcie/tx.c
index eb39e58..a24c1df 100644
--- a/drivers/net/wireless/iwlwifi/pcie/tx.c
+++ b/drivers/net/wireless/iwlwifi/pcie/tx.c
@@ -1085,8 +1085,7 @@ void iwl_trans_pcie_txq_enable(struct iwl_trans *trans, int txq_id, u16 ssn,
if (txq_id != trans_pcie->cmd_queue)
iwl_scd_txq_set_chain(trans, txq_id);
- /* If this queue is mapped to a certain station: it is an AGG */
- if (cfg->sta_id >= 0) {
+ if (cfg->aggregate) {
u16 ra_tid = BUILD_RAxTID(cfg->sta_id, cfg->tid);
/* Map receiver-address / traffic-ID to this queue */
OpenPOWER on IntegriCloud