Lines Matching refs:txring

556 	struct pasemi_mac_txring *txring = tx_ring(mac);  in pasemi_mac_free_tx_resources()  local
563 start = txring->next_to_clean; in pasemi_mac_free_tx_resources()
564 limit = txring->next_to_fill; in pasemi_mac_free_tx_resources()
571 info = &txring->ring_info[(i+1) & (TX_RING_SIZE-1)]; in pasemi_mac_free_tx_resources()
575 dmas[j] = txring->ring_info[(i+1+j) & in pasemi_mac_free_tx_resources()
584 kfree(txring->ring_info); in pasemi_mac_free_tx_resources()
585 pasemi_dma_free_chan(&txring->chan); in pasemi_mac_free_tx_resources()
863 static int pasemi_mac_clean_tx(struct pasemi_mac_txring *txring) in pasemi_mac_clean_tx() argument
865 struct pasemi_dmachan *chan = &txring->chan; in pasemi_mac_clean_tx()
866 struct pasemi_mac *mac = txring->mac; in pasemi_mac_clean_tx()
880 spin_lock_irqsave(&txring->lock, flags); in pasemi_mac_clean_tx()
882 start = txring->next_to_clean; in pasemi_mac_clean_tx()
883 ring_limit = txring->next_to_fill; in pasemi_mac_clean_tx()
885 prefetch(&TX_DESC_INFO(txring, start+1).skb); in pasemi_mac_clean_tx()
897 u64 mactx = TX_DESC(txring, i); in pasemi_mac_clean_tx()
906 TX_DESC(txring, i) = 0; in pasemi_mac_clean_tx()
907 TX_DESC(txring, i+1) = 0; in pasemi_mac_clean_tx()
912 skb = TX_DESC_INFO(txring, i+1).skb; in pasemi_mac_clean_tx()
913 nr_frags = TX_DESC_INFO(txring, i).dma; in pasemi_mac_clean_tx()
927 dmas[descr_count][j] = TX_DESC_INFO(txring, i+1+j).dma; in pasemi_mac_clean_tx()
932 TX_DESC(txring, i) = 0; in pasemi_mac_clean_tx()
933 TX_DESC(txring, i+1) = 0; in pasemi_mac_clean_tx()
937 txring->next_to_clean = i & (TX_RING_SIZE-1); in pasemi_mac_clean_tx()
939 spin_unlock_irqrestore(&txring->lock, flags); in pasemi_mac_clean_tx()
986 struct pasemi_mac_txring *txring = (struct pasemi_mac_txring *)data; in pasemi_mac_tx_timer() local
987 struct pasemi_mac *mac = txring->mac; in pasemi_mac_tx_timer()
989 pasemi_mac_clean_tx(txring); in pasemi_mac_tx_timer()
991 mod_timer(&txring->clean_timer, jiffies + TX_CLEAN_INTERVAL); in pasemi_mac_tx_timer()
998 struct pasemi_mac_txring *txring = data; in pasemi_mac_tx_intr() local
999 const struct pasemi_dmachan *chan = &txring->chan; in pasemi_mac_tx_intr()
1000 struct pasemi_mac *mac = txring->mac; in pasemi_mac_tx_intr()
1013 mod_timer(&txring->clean_timer, jiffies + (TX_CLEAN_INTERVAL)*2); in pasemi_mac_tx_intr()
1391 struct pasemi_mac_txring *txring, in pasemi_mac_queue_csdesc() argument
1463 fill = txring->next_to_fill; in pasemi_mac_queue_csdesc()
1464 TX_DESC(txring, fill++) = CTRL_CMD_T | CTRL_CMD_META_EVT | CTRL_CMD_O | in pasemi_mac_queue_csdesc()
1466 TX_DESC(txring, fill++) = 0; in pasemi_mac_queue_csdesc()
1467 TX_DESC(txring, fill++) = CTRL_CMD_T | CTRL_CMD_META_EVT | CTRL_CMD_O | in pasemi_mac_queue_csdesc()
1469 TX_DESC(txring, fill++) = 0; in pasemi_mac_queue_csdesc()
1470 txring->next_to_fill = fill; in pasemi_mac_queue_csdesc()
1472 write_dma_reg(PAS_DMA_TXCHAN_INCR(txring->chan.chno), 2); in pasemi_mac_queue_csdesc()
1478 struct pasemi_mac_txring * const txring = tx_ring(mac); in pasemi_mac_start_tx() local
1490 prefetch(&txring->ring_info); in pasemi_mac_start_tx()
1533 spin_lock_irqsave(&txring->lock, flags); in pasemi_mac_start_tx()
1539 if (RING_AVAIL(txring) < nfrags + 14) { in pasemi_mac_start_tx()
1550 pasemi_mac_queue_csdesc(skb, map, map_size, txring, csring); in pasemi_mac_start_tx()
1553 fill = txring->next_to_fill; in pasemi_mac_start_tx()
1554 TX_DESC(txring, fill) = mactx; in pasemi_mac_start_tx()
1555 TX_DESC_INFO(txring, fill).dma = nfrags; in pasemi_mac_start_tx()
1557 TX_DESC_INFO(txring, fill).skb = skb; in pasemi_mac_start_tx()
1559 TX_DESC(txring, fill+i) = in pasemi_mac_start_tx()
1561 TX_DESC_INFO(txring, fill+i).dma = map[i]; in pasemi_mac_start_tx()
1571 txring->next_to_fill = (fill + nfrags + 1) & (TX_RING_SIZE-1); in pasemi_mac_start_tx()
1576 spin_unlock_irqrestore(&txring->lock, flags); in pasemi_mac_start_tx()
1578 write_dma_reg(PAS_DMA_TXCHAN_INCR(txring->chan.chno), (nfrags+2) >> 1); in pasemi_mac_start_tx()
1583 spin_unlock_irqrestore(&txring->lock, flags); in pasemi_mac_start_tx()