void ath_debug_stat_tx(struct ath_softc *sc, struct ath_txq *txq, struct ath_buf *bf) { struct ath_desc *ds = bf->bf_desc; if (bf_isampdu(bf)) { if (bf_isxretried(bf)) TX_STAT_INC(txq->axq_qnum, a_xretries); else TX_STAT_INC(txq->axq_qnum, a_completed); } else { TX_STAT_INC(txq->axq_qnum, completed); } if (ds->ds_txstat.ts_status & ATH9K_TXERR_FIFO) TX_STAT_INC(txq->axq_qnum, fifo_underrun); if (ds->ds_txstat.ts_status & ATH9K_TXERR_XTXOP) TX_STAT_INC(txq->axq_qnum, xtxop); if (ds->ds_txstat.ts_status & ATH9K_TXERR_TIMER_EXPIRED) TX_STAT_INC(txq->axq_qnum, timer_exp); if (ds->ds_txstat.ts_flags & ATH9K_TX_DESC_CFG_ERR) TX_STAT_INC(txq->axq_qnum, desc_cfg_err); if (ds->ds_txstat.ts_flags & ATH9K_TX_DATA_UNDERRUN) TX_STAT_INC(txq->axq_qnum, data_underrun); if (ds->ds_txstat.ts_flags & ATH9K_TX_DELIM_UNDERRUN) TX_STAT_INC(txq->axq_qnum, delim_underrun); }
void ath_debug_stat_tx(struct ath_softc *sc, struct ath_txq *txq, struct ath_buf *bf) { struct ath_desc *ds = bf->bf_desc; if (bf_isampdu(bf)) { if (bf_isxretried(bf)) TX_STAT_INC(txq->axq_qnum, a_xretries); else TX_STAT_INC(txq->axq_qnum, a_completed); } else { TX_STAT_INC(txq->axq_qnum, completed); } if (ds->ds_txstat.ts_status & ATH9K_TXERR_FIFO) TX_STA