Lines Matching refs:tx_ring
111 static int c2_tx_ring_alloc(struct c2_ring *tx_ring, void *vaddr,
119 tx_ring->start = kmalloc(sizeof(*elem) * tx_ring->count, GFP_KERNEL);
120 if (!tx_ring->start)
123 elem = tx_ring->start;
126 for (i = 0; i < tx_ring->count; i++, elem++, tx_desc++, txp_desc++) {
141 if (i == tx_ring->count - 1) {
142 elem->next = tx_ring->start;
151 tx_ring->to_use = tx_ring->to_clean = tx_ring->start;
326 struct c2_ring *tx_ring = &c2_port->tx_ring;
334 elem = tx_ring->start;
363 } while ((elem = elem->next) != tx_ring->start);
366 c2_port->tx_avail = c2_port->tx_ring.count - 1;
367 c2_port->c2dev->cur_tx = tx_ring->to_use - tx_ring->start;
383 struct c2_ring *tx_ring = &c2_port->tx_ring;
389 for (elem = tx_ring->to_clean; elem != tx_ring->to_use;
403 netdev->name, elem - tx_ring->start,
411 tx_ring->to_clean = elem;
604 tx_size = c2_port->tx_ring.count * sizeof(struct c2_tx_desc);
630 if ((ret = c2_tx_ring_alloc(&c2_port->tx_ring, c2_port->mem + rx_size,
638 c2_port->tx_avail = c2_port->tx_ring.count - 1;
639 c2_port->tx_ring.to_use = c2_port->tx_ring.to_clean =
640 c2_port->tx_ring.start + c2dev->cur_tx;
644 BUG_ON(c2_port->tx_ring.to_use != c2_port->tx_ring.to_clean);
723 kfree(c2_port->tx_ring.start);
760 struct c2_ring *tx_ring = &c2_port->tx_ring;
782 elem = tx_ring->to_use;
823 tx_ring->to_use = elem->next;
900 c2_port->tx_ring.count = C2_NUM_TX_DESC;