Lines Matching refs:txr
286 if (qca->txr.skb[qca->txr.head] == NULL)
299 while (qca->txr.skb[qca->txr.head]) {
300 pkt_len = qca->txr.skb[qca->txr.head]->len + QCASPI_HW_PKT_LEN;
308 if (qcaspi_tx_frame(qca, qca->txr.skb[qca->txr.head]) == -1) {
315 n_stats->tx_bytes += qca->txr.skb[qca->txr.head]->len;
323 dev_kfree_skb(qca->txr.skb[qca->txr.head]);
324 qca->txr.skb[qca->txr.head] = NULL;
325 qca->txr.size -= pkt_len;
326 new_head = qca->txr.head + 1;
327 if (new_head >= qca->txr.count)
329 qca->txr.head = new_head;
458 qcaspi_tx_ring_has_space(struct tx_ring *txr)
460 if (txr->skb[txr->tail])
463 return (txr->size + QCAFRM_MAX_LEN < QCASPI_HW_BUF_LEN) ? 1 : 0;
480 if (qca->txr.skb[i]) {
481 dev_kfree_skb(qca->txr.skb[i]);
482 qca->txr.skb[i] = NULL;
486 qca->txr.tail = 0;
487 qca->txr.head = 0;
488 qca->txr.size = 0;
596 !qca->txr.skb[qca->txr.head])
603 qca->txr.skb[qca->txr.head]);
753 if (qca->txr.skb[qca->txr.tail]) {
787 qca->txr.size += skb->len + QCASPI_HW_PKT_LEN;
789 new_tail = qca->txr.tail + 1;
790 if (new_tail >= qca->txr.count)
793 qca->txr.skb[qca->txr.tail] = skb;
794 qca->txr.tail = new_tail;
796 if (!qcaspi_tx_ring_has_space(&qca->txr)) {
893 memset(&qca->txr, 0, sizeof(qca->txr));
894 qca->txr.count = TX_RING_MAX_LEN;