Lines Matching refs:txring
509 struct pasemi_mac_txring *txring = tx_ring(mac);
516 start = txring->next_to_clean;
517 limit = txring->next_to_fill;
524 info = &txring->ring_info[(i+1) & (TX_RING_SIZE-1)];
528 dmas[j] = txring->ring_info[(i+1+j) &
537 kfree(txring->ring_info);
538 pasemi_dma_free_chan(&txring->chan);
814 static int pasemi_mac_clean_tx(struct pasemi_mac_txring *txring)
816 struct pasemi_dmachan *chan = &txring->chan;
817 struct pasemi_mac *mac = txring->mac;
831 spin_lock_irqsave(&txring->lock, flags);
833 start = txring->next_to_clean;
834 ring_limit = txring->next_to_fill;
836 prefetch(&TX_DESC_INFO(txring, start+1).skb);
848 u64 mactx = TX_DESC(txring, i);
857 TX_DESC(txring, i) = 0;
858 TX_DESC(txring, i+1) = 0;
863 skb = TX_DESC_INFO(txring, i+1).skb;
864 nr_frags = TX_DESC_INFO(txring, i).dma;
878 dmas[descr_count][j] = TX_DESC_INFO(txring, i+1+j).dma;
883 TX_DESC(txring, i) = 0;
884 TX_DESC(txring, i+1) = 0;
888 txring->next_to_clean = i & (TX_RING_SIZE-1);
890 spin_unlock_irqrestore(&txring->lock, flags);
937 struct pasemi_mac_txring *txring = from_timer(txring, t, clean_timer);
938 struct pasemi_mac *mac = txring->mac;
940 pasemi_mac_clean_tx(txring);
942 mod_timer(&txring->clean_timer, jiffies + TX_CLEAN_INTERVAL);
949 struct pasemi_mac_txring *txring = data;
950 const struct pasemi_dmachan *chan = &txring->chan;
951 struct pasemi_mac *mac = txring->mac;
964 mod_timer(&txring->clean_timer, jiffies + (TX_CLEAN_INTERVAL)*2);
1343 struct pasemi_mac_txring *txring,
1414 fill = txring->next_to_fill;
1415 TX_DESC(txring, fill++) = CTRL_CMD_T | CTRL_CMD_META_EVT | CTRL_CMD_O |
1417 TX_DESC(txring, fill++) = 0;
1418 TX_DESC(txring, fill++) = CTRL_CMD_T | CTRL_CMD_META_EVT | CTRL_CMD_O |
1420 TX_DESC(txring, fill++) = 0;
1421 txring->next_to_fill = fill;
1423 write_dma_reg(PAS_DMA_TXCHAN_INCR(txring->chan.chno), 2);
1429 struct pasemi_mac_txring * const txring = tx_ring(mac);
1441 prefetch(&txring->ring_info);
1484 spin_lock_irqsave(&txring->lock, flags);
1490 if (RING_AVAIL(txring) < nfrags + 14) {
1501 pasemi_mac_queue_csdesc(skb, map, map_size, txring, csring);
1504 fill = txring->next_to_fill;
1505 TX_DESC(txring, fill) = mactx;
1506 TX_DESC_INFO(txring, fill).dma = nfrags;
1508 TX_DESC_INFO(txring, fill).skb = skb;
1510 TX_DESC(txring, fill+i) =
1512 TX_DESC_INFO(txring, fill+i).dma = map[i];
1522 txring->next_to_fill = (fill + nfrags + 1) & (TX_RING_SIZE-1);
1527 spin_unlock_irqrestore(&txring->lock, flags);
1529 write_dma_reg(PAS_DMA_TXCHAN_INCR(txring->chan.chno), (nfrags+2) >> 1);
1534 spin_unlock_irqrestore(&txring->lock, flags);