iwlwifi: trans: make aggregation explicit for TX queue handling
authorJohannes Berg <johannes.berg@intel.com>
Fri, 1 Aug 2014 11:33:46 +0000 (13:33 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Wed, 3 Sep 2014 19:49:06 +0000 (22:49 +0300)
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>
drivers/net/wireless/iwlwifi/iwl-trans.h
drivers/net/wireless/iwlwifi/pcie/tx.c

index dd3aefc0ad2d16c73743edce48c6c71e414fdbf9..7e8dc3a2b2df0f23084803ee084d2b03c9356653 100644 (file)
@@ -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);
index eb39e584cc6d0cbab2bdd869262179754e269d27..a24c1df2b1b54a5f9db21ac788b470325379dc92 100644 (file)
@@ -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 */