Index: chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/xmit.c |
diff --git a/chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/xmit.c b/chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/xmit.c |
index e7b6a1444f756553bde6186c90381618b09809a4..28ebf65b8e667fd5bb6ae30f66e654108b7efb2f 100644 |
--- a/chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/xmit.c |
+++ b/chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/xmit.c |
@@ -439,6 +439,8 @@ static void ath_tx_complete_aggr(struct ath_softc *sc, struct ath_txq *txq, |
BUG_ON(list_empty(bf_q)); |
list_move_tail(&bf->list, &bf_head); |
} |
+ |
+ ath9k_pktlog_txcomplete(sc, &bf_head, bf, bf_last); |
if (!txpending || (tid->state & AGGR_CLEANUP)) { |
/* |
@@ -2089,7 +2091,7 @@ static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq) |
ds = lastbf->bf_desc; |
memset(&ts, 0, sizeof(ts)); |
- status = ath9k_hw_txprocdesc(ah, ds, &ts); |
+ status = ath9k_hw_txprocdesc(ah, ds, &ts, NULL); |
if (status == -EINPROGRESS) { |
spin_unlock_bh(&txq->axq_lock); |
break; |
@@ -2140,10 +2142,14 @@ static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq) |
qnum = skb_get_queue_mapping(bf->bf_mpdu); |
- if (bf_isampdu(bf)) |
+ if (bf_isampdu(bf)) { |
ath_tx_complete_aggr(sc, txq, bf, &bf_head, &ts, txok); |
- else |
+ } else { |
+ ath9k_pktlog_txctrl(sc, &bf_head, lastbf); |
ath_tx_complete_buf(sc, bf, txq, &bf_head, &ts, txok, 0); |
+ } |
+ |
+ ath_pktlog_txstatus(sc, lastbf->bf_desc); |
if (txq == sc->tx.txq_map[qnum]) |
ath_wake_mac80211_queue(sc, qnum); |
@@ -2217,9 +2223,11 @@ void ath_tx_edma_tasklet(struct ath_softc *sc) |
int status; |
int txok; |
int qnum; |
+ u32 txs_desc[9]; |
for (;;) { |
- status = ath9k_hw_txprocdesc(ah, NULL, (void *)&txs); |
+ status = ath9k_hw_txprocdesc(ah, NULL, (void *)&txs, |
+ (void *) txs_desc); |
if (status == -EINPROGRESS) |
break; |
if (status == -EIO) { |
@@ -2273,15 +2281,19 @@ void ath_tx_edma_tasklet(struct ath_softc *sc) |
qnum = skb_get_queue_mapping(bf->bf_mpdu); |
- if (bf_isampdu(bf)) |
+ if (bf_isampdu(bf)) { |
ath_tx_complete_aggr(sc, txq, bf, &bf_head, &txs, txok); |
- else |
+ } else { |
+ ath9k_pktlog_txctrl(sc, &bf_head, lastbf); |
ath_tx_complete_buf(sc, bf, txq, &bf_head, |
&txs, txok, 0); |
+ } |
if (txq == sc->tx.txq_map[qnum]) |
ath_wake_mac80211_queue(sc, qnum); |
+ ath_pktlog_txstatus(sc, txs_desc); |
+ |
spin_lock_bh(&txq->axq_lock); |
if (!list_empty(&txq->txq_fifo_pending)) { |
INIT_LIST_HEAD(&bf_head); |