|
@@ -83,6 +83,15 @@ static inline int get_fifo_from_ac(u8 ac)
|
|
|
return ac_to_fifo[ac];
|
|
|
}
|
|
|
|
|
|
+static inline int get_ac_from_tid(u16 tid)
|
|
|
+{
|
|
|
+ if (likely(tid < ARRAY_SIZE(tid_to_ac)))
|
|
|
+ return tid_to_ac[tid];
|
|
|
+
|
|
|
+ /* no support for TIDs 8-15 yet */
|
|
|
+ return -EINVAL;
|
|
|
+}
|
|
|
+
|
|
|
static inline int get_fifo_from_tid(u16 tid)
|
|
|
{
|
|
|
if (likely(tid < ARRAY_SIZE(tid_to_ac)))
|
|
@@ -991,7 +1000,7 @@ int iwlagn_tx_agg_start(struct iwl_priv *priv, const u8 *ra, u16 tid, u16 *ssn)
|
|
|
tid_data = &priv->stations[sta_id].tid[tid];
|
|
|
*ssn = SEQ_TO_SN(tid_data->seq_number);
|
|
|
tid_data->agg.txq_id = txq_id;
|
|
|
- priv->txq[txq_id].swq_id = iwl_virtual_agg_queue_num(tx_fifo, txq_id);
|
|
|
+ priv->txq[txq_id].swq_id = iwl_virtual_agg_queue_num(get_ac_from_tid(tid), txq_id);
|
|
|
spin_unlock_irqrestore(&priv->sta_lock, flags);
|
|
|
|
|
|
ret = priv->cfg->ops->lib->txq_agg_enable(priv, txq_id, tx_fifo,
|