Lines Matching refs:txq
145 ath_tx_alq_edma_push(struct ath_softc *sc, int txq, int nframes, in ath_tx_alq_edma_push() argument
150 aq.txq = htobe32(txq); in ath_tx_alq_edma_push()
173 ath_tx_edma_push_staging_list(struct ath_softc *sc, struct ath_txq *txq, in ath_tx_edma_push_staging_list() argument
181 ATH_TXQ_LOCK_ASSERT(txq); in ath_tx_edma_push_staging_list()
186 txq->axq_qnum, in ath_tx_edma_push_staging_list()
187 txq->axq_fifo_depth, in ath_tx_edma_push_staging_list()
188 !! (TAILQ_EMPTY(&txq->axq_q))); in ath_tx_edma_push_staging_list()
193 if (txq->axq_fifo_depth >= HAL_TXFIFO_DEPTH) in ath_tx_edma_push_staging_list()
196 if (TAILQ_EMPTY(&txq->axq_q)) in ath_tx_edma_push_staging_list()
208 bf = ATH_TXQ_FIRST(txq); in ath_tx_edma_push_staging_list()
211 ATH_TXQ_REMOVE(txq, bf, bf_list); in ath_tx_edma_push_staging_list()
258 ath_printtxbuf(sc, bfi, txq->axq_qnum, i, 0); in ath_tx_edma_push_staging_list()
274 TAILQ_CONCAT(&txq->fifo.axq_q, &sq, bf_list); in ath_tx_edma_push_staging_list()
276 txq->fifo.axq_depth += sqdepth; in ath_tx_edma_push_staging_list()
279 txq->axq_fifo_depth++; in ath_tx_edma_push_staging_list()
282 __func__, sqdepth, txq->fifo.axq_depth, txq->axq_fifo_depth); in ath_tx_edma_push_staging_list()
285 ath_hal_puttxbuf(sc->sc_ah, txq->axq_qnum, bf->bf_daddr); in ath_tx_edma_push_staging_list()
288 ath_hal_txstart(sc->sc_ah, txq->axq_qnum); in ath_tx_edma_push_staging_list()
291 ath_tx_alq_edma_push(sc, txq->axq_qnum, sqdepth, in ath_tx_edma_push_staging_list()
292 txq->axq_fifo_depth, in ath_tx_edma_push_staging_list()
293 txq->fifo.axq_depth); in ath_tx_edma_push_staging_list()
303 ath_edma_tx_fifo_fill(struct ath_softc *sc, struct ath_txq *txq) in ath_edma_tx_fifo_fill() argument
306 ATH_TXQ_LOCK_ASSERT(txq); in ath_edma_tx_fifo_fill()
311 txq->axq_qnum, in ath_edma_tx_fifo_fill()
312 txq->fifo.axq_depth, in ath_edma_tx_fifo_fill()
313 txq->axq_fifo_depth, in ath_edma_tx_fifo_fill()
314 txq->axq_depth, in ath_edma_tx_fifo_fill()
315 txq->axq_aggr_depth); in ath_edma_tx_fifo_fill()
364 if (txq->axq_depth >= TX_BATCH_SIZE / 2 && in ath_edma_tx_fifo_fill()
365 txq->fifo.axq_depth <= TX_BATCH_SIZE) { in ath_edma_tx_fifo_fill()
366 ath_tx_edma_push_staging_list(sc, txq, TX_BATCH_SIZE); in ath_edma_tx_fifo_fill()
380 else if (txq->axq_aggr_depth > 0 && txq->axq_fifo_depth < 2) in ath_edma_tx_fifo_fill()
381 ath_tx_edma_push_staging_list(sc, txq, TX_BATCH_SIZE); in ath_edma_tx_fifo_fill()
391 else if (txq->axq_fifo_depth == 0) { in ath_edma_tx_fifo_fill()
392 ath_tx_edma_push_staging_list(sc, txq, TX_BATCH_SIZE); in ath_edma_tx_fifo_fill()
404 ath_edma_dma_restart(struct ath_softc *sc, struct ath_txq *txq) in ath_edma_dma_restart() argument
413 txq->axq_qnum); in ath_edma_dma_restart()
415 ATH_TXQ_LOCK_ASSERT(txq); in ath_edma_dma_restart()
421 old_fifo_depth = txq->axq_fifo_depth; in ath_edma_dma_restart()
422 txq->axq_fifo_depth = 0; in ath_edma_dma_restart()
432 TAILQ_FOREACH(bf, &txq->fifo.axq_q, bf_list) { in ath_edma_dma_restart()
442 ath_printtxbuf(sc, bf, txq->axq_qnum, i, 0); in ath_edma_dma_restart()
456 if (txq->axq_fifo_depth >= HAL_TXFIFO_DEPTH) { in ath_edma_dma_restart()
460 txq->axq_qnum, in ath_edma_dma_restart()
461 txq->axq_fifo_depth); in ath_edma_dma_restart()
468 txq->axq_qnum, in ath_edma_dma_restart()
469 txq->axq_fifo_depth, in ath_edma_dma_restart()
483 ath_hal_puttxbuf(sc->sc_ah, txq->axq_qnum, bf->bf_daddr); in ath_edma_dma_restart()
484 txq->axq_fifo_depth++; in ath_edma_dma_restart()
498 ath_hal_txstart(sc->sc_ah, txq->axq_qnum); in ath_edma_dma_restart()
502 txq->axq_qnum, in ath_edma_dma_restart()
504 txq->axq_fifo_depth); in ath_edma_dma_restart()
507 if (txq->axq_fifo_depth != old_fifo_depth) { in ath_edma_dma_restart()
511 txq->axq_qnum, in ath_edma_dma_restart()
513 txq->axq_fifo_depth); in ath_edma_dma_restart()
530 ath_edma_xmit_handoff_hw(struct ath_softc *sc, struct ath_txq *txq, in ath_edma_xmit_handoff_hw() argument
534 ATH_TXQ_LOCK(txq); in ath_edma_xmit_handoff_hw()
546 txq->axq_aggr_depth++; in ath_edma_xmit_handoff_hw()
549 ATH_TXQ_INSERT_TAIL(txq, bf, bf_list); in ath_edma_xmit_handoff_hw()
555 ath_edma_tx_fifo_fill(sc, txq); in ath_edma_xmit_handoff_hw()
556 ATH_TXQ_UNLOCK(txq); in ath_edma_xmit_handoff_hw()
567 ath_edma_xmit_handoff_mcast(struct ath_softc *sc, struct ath_txq *txq, in ath_edma_xmit_handoff_mcast() argument
575 ATH_TXQ_LOCK(txq); in ath_edma_xmit_handoff_mcast()
579 if (ATH_TXQ_LAST(txq, axq_q_s) != NULL) { in ath_edma_xmit_handoff_mcast()
580 struct ath_buf *bf_last = ATH_TXQ_LAST(txq, axq_q_s); in ath_edma_xmit_handoff_mcast()
600 ATH_TXQ_INSERT_TAIL(txq, bf, bf_list); in ath_edma_xmit_handoff_mcast()
601 ATH_TXQ_UNLOCK(txq); in ath_edma_xmit_handoff_mcast()
622 ath_edma_xmit_handoff(struct ath_softc *sc, struct ath_txq *txq, in ath_edma_xmit_handoff() argument
630 txq, in ath_edma_xmit_handoff()
631 txq->axq_qnum); in ath_edma_xmit_handoff()
633 if (txq->axq_qnum == ATH_TXQ_SWQ) in ath_edma_xmit_handoff()
634 ath_edma_xmit_handoff_mcast(sc, txq, bf); in ath_edma_xmit_handoff()
636 ath_edma_xmit_handoff_hw(sc, txq, bf); in ath_edma_xmit_handoff()
801 struct ath_txq *txq; in ath_edma_tx_processq() local
878 txq = &sc->sc_txq[ts.ts_queue_id]; in ath_edma_tx_processq()
880 ATH_TXQ_LOCK(txq); in ath_edma_tx_processq()
881 bf = ATH_TXQ_FIRST(&txq->fifo); in ath_edma_tx_processq()
892 ATH_TXQ_UNLOCK(txq); in ath_edma_tx_processq()
918 ATH_TXQ_REMOVE(&txq->fifo, bf, bf_list); in ath_edma_tx_processq()
920 txq->axq_aggr_depth--; in ath_edma_tx_processq()
926 txq->axq_fifo_depth--; in ath_edma_tx_processq()
937 txq->axq_qnum, in ath_edma_tx_processq()
938 txq->axq_fifo_depth, in ath_edma_tx_processq()
939 txq->fifo.axq_depth); in ath_edma_tx_processq()
942 ATH_TXQ_UNLOCK(txq); in ath_edma_tx_processq()
950 ATH_TXQ_LOCK(txq); in ath_edma_tx_processq()
951 ath_txq_freeholdingbuf(sc, txq); in ath_edma_tx_processq()
952 ATH_TXQ_UNLOCK(txq); in ath_edma_tx_processq()
1019 ath_tx_process_buf_completion(sc, txq, &ts, bf); in ath_edma_tx_processq()