aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2014-08-01 07:33:46 -0400
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2014-09-03 15:49:06 -0400
commit64ba893066528a03d7d21d7e187005748027a309 (patch)
treefb29f1b907c2825d235e83aa09dd948109b68e7d
parentd4578ea810ce468fdb8e1b7014818c31db9be5e2 (diff)
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 dd3aefc0ad2d..7e8dc3a2b2df 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 {
405 u8 fifo; 405 u8 fifo;
406 s8 sta_id; 406 s8 sta_id;
407 u8 tid; 407 u8 tid;
408 bool aggregate;
408 int frame_limit; 409 int frame_limit;
409}; 410};
410 411
@@ -803,6 +804,7 @@ static inline void iwl_trans_txq_enable(struct iwl_trans *trans, int queue,
803 .sta_id = sta_id, 804 .sta_id = sta_id,
804 .tid = tid, 805 .tid = tid,
805 .frame_limit = frame_limit, 806 .frame_limit = frame_limit,
807 .aggregate = sta_id >= 0,
806 }; 808 };
807 809
808 iwl_trans_txq_enable_cfg(trans, queue, ssn, &cfg); 810 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,
816 .sta_id = -1, 818 .sta_id = -1,
817 .tid = IWL_MAX_TID_COUNT, 819 .tid = IWL_MAX_TID_COUNT,
818 .frame_limit = IWL_FRAME_LIMIT, 820 .frame_limit = IWL_FRAME_LIMIT,
821 .aggregate = false,
819 }; 822 };
820 823
821 iwl_trans_txq_enable_cfg(trans, queue, 0, &cfg); 824 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 eb39e584cc6d..a24c1df2b1b5 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,
1085 if (txq_id != trans_pcie->cmd_queue) 1085 if (txq_id != trans_pcie->cmd_queue)
1086 iwl_scd_txq_set_chain(trans, txq_id); 1086 iwl_scd_txq_set_chain(trans, txq_id);
1087 1087
1088 /* If this queue is mapped to a certain station: it is an AGG */ 1088 if (cfg->aggregate) {
1089 if (cfg->sta_id >= 0) {
1090 u16 ra_tid = BUILD_RAxTID(cfg->sta_id, cfg->tid); 1089 u16 ra_tid = BUILD_RAxTID(cfg->sta_id, cfg->tid);
1091 1090
1092 /* Map receiver-address / traffic-ID to this queue */ 1091 /* Map receiver-address / traffic-ID to this queue */