Lines Matching refs:tcb

159 		 struct bna_tcb *tcb)
162 struct bnad_unmap_q *unmap_q = tcb->unmap_q;
193 struct bna_tcb *tcb)
197 struct bnad_unmap_q *unmap_q = tcb->unmap_q;
208 if (!test_bit(BNAD_TXQ_TX_STARTED, &tcb->flags))
211 updated_hw_cons = *(tcb->hw_consumer_index);
213 wis = BNA_Q_INDEX_CHANGE(tcb->consumer_index,
214 updated_hw_cons, tcb->q_depth);
216 BUG_ON(!(wis <= BNA_QE_IN_USE_CNT(tcb, tcb->q_depth)));
237 tcb->consumer_index = updated_hw_cons;
240 tcb->txq->tx_packets += sent_packets;
241 tcb->txq->tx_bytes += sent_bytes;
247 /* Frees for all the tcb's in all the Tx's */
257 struct bna_tcb *tcb;
263 tcb = bnad->tx_info[i].tcb[j];
264 if (!tcb)
266 if (((u16) (*tcb->hw_consumer_index) !=
267 tcb->consumer_index) &&
269 &tcb->flags))) {
270 acked = bnad_free_txbufs(bnad, tcb);
272 &tcb->flags)))
273 bna_ib_ack(tcb->i_dbell, acked);
275 clear_bit(BNAD_TXQ_FREE_SENT, &tcb->flags);
278 &tcb->flags)))
282 BNA_QE_FREE_CNT(tcb, tcb->q_depth) >=
296 bnad_tx(struct bnad *bnad, struct bna_tcb *tcb)
301 if (test_and_set_bit(BNAD_TXQ_FREE_SENT, &tcb->flags))
304 sent = bnad_free_txbufs(bnad, tcb);
308 BNA_QE_FREE_CNT(tcb, tcb->q_depth) >=
310 if (test_bit(BNAD_TXQ_TX_STARTED, &tcb->flags)) {
317 if (likely(test_bit(BNAD_TXQ_TX_STARTED, &tcb->flags)))
318 bna_ib_ack(tcb->i_dbell, sent);
321 clear_bit(BNAD_TXQ_FREE_SENT, &tcb->flags);
330 struct bna_tcb *tcb = (struct bna_tcb *)data;
331 struct bnad *bnad = tcb->bnad;
333 bnad_tx(bnad, tcb);
620 struct bna_tcb *tcb = NULL;
647 tcb = bnad->tx_info[i].tcb[j];
648 if (tcb && test_bit(BNAD_TXQ_TX_STARTED, &tcb->flags))
649 bnad_tx(bnad, bnad->tx_info[i].tcb[j]);
774 struct bna_tcb *tcb =
775 bnad->tx_info[tx_id].tcb[tcb_id];
777 if (!tcb)
780 txq_id = tcb->id;
783 &tcb->flags)) {
825 bnad_cb_tcb_setup(struct bnad *bnad, struct bna_tcb *tcb)
828 (struct bnad_tx_info *)tcb->txq->tx->priv;
829 struct bnad_unmap_q *unmap_q = tcb->unmap_q;
831 tx_info->tcb[tcb->id] = tcb;
838 bnad_cb_tcb_destroy(struct bnad *bnad, struct bna_tcb *tcb)
841 (struct bnad_tx_info *)tcb->txq->tx->priv;
842 struct bnad_unmap_q *unmap_q = tcb->unmap_q;
844 while (test_and_set_bit(BNAD_TXQ_FREE_SENT, &tcb->flags))
847 bnad_free_all_txbufs(bnad, tcb);
853 clear_bit(BNAD_TXQ_FREE_SENT, &tcb->flags);
855 tx_info->tcb[tcb->id] = NULL;
898 struct bna_tcb *tcb;
903 tcb = tx_info->tcb[i];
904 if (!tcb)
906 txq_id = tcb->id;
907 clear_bit(BNAD_TXQ_TX_STARTED, &tcb->flags);
918 struct bna_tcb *tcb;
924 tcb = tx_info->tcb[i];
925 if (!tcb)
927 txq_id = tcb->id;
929 unmap_q = tcb->unmap_q;
931 if (test_bit(BNAD_TXQ_TX_STARTED, &tcb->flags))
934 while (test_and_set_bit(BNAD_TXQ_FREE_SENT, &tcb->flags))
937 bnad_free_all_txbufs(bnad, tcb);
943 clear_bit(BNAD_TXQ_FREE_SENT, &tcb->flags);
945 set_bit(BNAD_TXQ_TX_STARTED, &tcb->flags);
970 struct bna_tcb *tcb;
974 tcb = tx_info->tcb[i];
975 if (!tcb)
1332 if (tx_info->tcb[i] == NULL)
1335 vector_num = tx_info->tcb[i]->intr_vector;
1336 free_irq(bnad->msix_table[vector_num].vector, tx_info->tcb[i]);
1353 vector_num = tx_info->tcb[i]->intr_vector;
1354 sprintf(tx_info->tcb[i]->name, "%s TXQ %d", bnad->netdev->name,
1355 tx_id + tx_info->tcb[i]->id);
1358 tx_info->tcb[i]->name,
1359 tx_info->tcb[i]);
1763 if (tx_info->tcb[0]->intr_type == BNA_INTR_T_MSIX)
2160 if (bnad->tx_info[i].tcb[j]) {
2162 bnad->tx_info[i].tcb[j]->txq->tx_packets;
2164 bnad->tx_info[i].tcb[j]->txq->tx_bytes;
2570 struct bna_tcb *tcb = bnad->tx_info[0].tcb[txq_id];
2579 struct bnad_unmap_q *unmap_q = tcb->unmap_q;
2604 if (unlikely(!test_bit(BNAD_TXQ_TX_STARTED, &tcb->flags))) {
2618 if (unlikely(wis > BNA_QE_FREE_CNT(tcb, tcb->q_depth) ||
2620 if ((u16) (*tcb->hw_consumer_index) !=
2621 tcb->consumer_index &&
2622 !test_and_set_bit(BNAD_TXQ_FREE_SENT, &tcb->flags)) {
2623 acked = bnad_free_txbufs(bnad, tcb);
2624 if (likely(test_bit(BNAD_TXQ_TX_STARTED, &tcb->flags)))
2625 bna_ib_ack(tcb->i_dbell, acked);
2627 clear_bit(BNAD_TXQ_FREE_SENT, &tcb->flags);
2640 (wis > BNA_QE_FREE_CNT(tcb, tcb->q_depth) ||
2653 txq_prod = tcb->producer_index;
2654 BNA_TXQ_QPGE_PTR_GET(txq_prod, tcb->sw_qpt, txqent, wi_range);
2664 (tcb->priority & 0x7) << 13 | (vlan_tag & 0x1fff);
2802 tcb->q_depth);
2804 BNA_TXQ_QPGE_PTR_GET(txq_prod, tcb->sw_qpt,
2835 BNA_QE_INDX_ADD(txq_prod, wis_used, tcb->q_depth);
2836 tcb->producer_index = txq_prod;
2840 if (unlikely(!test_bit(BNAD_TXQ_TX_STARTED, &tcb->flags)))
2843 bna_txq_prod_indx_doorbell(tcb);
2846 if ((u16) (*tcb->hw_consumer_index) != tcb->consumer_index)