|
@@ -1290,14 +1290,11 @@ void ath_tx_aggr_resume(struct ath_softc *sc, struct ieee80211_sta *sta, u16 tid
|
|
|
|
|
|
an = (struct ath_node *)sta->drv_priv;
|
|
|
|
|
|
- if (sc->sc_flags & SC_OP_TXAGGR) {
|
|
|
- txtid = ATH_AN_2_TID(an, tid);
|
|
|
- txtid->baw_size =
|
|
|
- IEEE80211_MIN_AMPDU_BUF << sta->ht_cap.ampdu_factor;
|
|
|
- txtid->state |= AGGR_ADDBA_COMPLETE;
|
|
|
- txtid->state &= ~AGGR_ADDBA_PROGRESS;
|
|
|
- ath_tx_resume_tid(sc, txtid);
|
|
|
- }
|
|
|
+ txtid = ATH_AN_2_TID(an, tid);
|
|
|
+ txtid->baw_size = IEEE80211_MIN_AMPDU_BUF << sta->ht_cap.ampdu_factor;
|
|
|
+ txtid->state |= AGGR_ADDBA_COMPLETE;
|
|
|
+ txtid->state &= ~AGGR_ADDBA_PROGRESS;
|
|
|
+ ath_tx_resume_tid(sc, txtid);
|
|
|
}
|
|
|
|
|
|
/********************/
|
|
@@ -1523,7 +1520,7 @@ void ath_draintxq(struct ath_softc *sc, struct ath_txq *txq, bool retry_tx)
|
|
|
ath_drain_txq_list(sc, txq, &txq->axq_q, retry_tx);
|
|
|
|
|
|
/* flush any pending frames if aggregation is enabled */
|
|
|
- if ((sc->sc_flags & SC_OP_TXAGGR) && !retry_tx)
|
|
|
+ if ((sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) && !retry_tx)
|
|
|
ath_txq_drain_pending_buffers(sc, txq);
|
|
|
|
|
|
ath_txq_unlock_complete(sc, txq);
|
|
@@ -1871,7 +1868,7 @@ static void ath_tx_start_dma(struct ath_softc *sc, struct sk_buff *skb,
|
|
|
struct ath_buf *bf;
|
|
|
u8 tidno;
|
|
|
|
|
|
- if ((sc->sc_flags & SC_OP_TXAGGR) && txctl->an &&
|
|
|
+ if ((sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) && txctl->an &&
|
|
|
ieee80211_is_data_qos(hdr->frame_control)) {
|
|
|
tidno = ieee80211_get_qos_ctl(hdr)[0] &
|
|
|
IEEE80211_QOS_CTL_TID_MASK;
|
|
@@ -2141,7 +2138,7 @@ static void ath_tx_process_buffer(struct ath_softc *sc, struct ath_txq *txq,
|
|
|
} else
|
|
|
ath_tx_complete_aggr(sc, txq, bf, bf_head, ts, txok, true);
|
|
|
|
|
|
- if (sc->sc_flags & SC_OP_TXAGGR)
|
|
|
+ if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT)
|
|
|
ath_txq_schedule(sc, txq);
|
|
|
}
|
|
|
|
|
@@ -2166,7 +2163,7 @@ static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq)
|
|
|
|
|
|
if (list_empty(&txq->axq_q)) {
|
|
|
txq->axq_link = NULL;
|
|
|
- if (sc->sc_flags & SC_OP_TXAGGR)
|
|
|
+ if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT)
|
|
|
ath_txq_schedule(sc, txq);
|
|
|
break;
|
|
|
}
|