Lines Matching refs:txr
273 if (qca->txr.skb[qca->txr.head] == NULL)
286 while (qca->txr.skb[qca->txr.head]) {
287 pkt_len = qca->txr.skb[qca->txr.head]->len + QCASPI_HW_PKT_LEN;
295 if (qcaspi_tx_frame(qca, qca->txr.skb[qca->txr.head]) == -1) {
302 n_stats->tx_bytes += qca->txr.skb[qca->txr.head]->len;
310 dev_kfree_skb(qca->txr.skb[qca->txr.head]);
311 qca->txr.skb[qca->txr.head] = NULL;
312 qca->txr.size -= pkt_len;
313 new_head = qca->txr.head + 1;
314 if (new_head >= qca->txr.count)
316 qca->txr.head = new_head;
445 qcaspi_tx_ring_has_space(struct tx_ring *txr)
447 if (txr->skb[txr->tail])
450 return (txr->size + QCAFRM_MAX_LEN < QCASPI_HW_BUF_LEN) ? 1 : 0;
467 if (qca->txr.skb[i]) {
468 dev_kfree_skb(qca->txr.skb[i]);
469 qca->txr.skb[i] = NULL;
473 qca->txr.tail = 0;
474 qca->txr.head = 0;
475 qca->txr.size = 0;
583 !qca->txr.skb[qca->txr.head])
590 qca->txr.skb[qca->txr.head]);
737 if (qca->txr.skb[qca->txr.tail]) {
771 qca->txr.size += skb->len + QCASPI_HW_PKT_LEN;
773 new_tail = qca->txr.tail + 1;
774 if (new_tail >= qca->txr.count)
777 qca->txr.skb[qca->txr.tail] = skb;
778 qca->txr.tail = new_tail;
780 if (!qcaspi_tx_ring_has_space(&qca->txr)) {
879 memset(&qca->txr, 0, sizeof(qca->txr));
880 qca->txr.count = QCASPI_TX_RING_MAX_LEN;