Lines Matching refs:tx

174 	struct myri10ge_tx_buf tx;	/* transmit ring        */  member
1151 ss->tx.req = 0; in myri10ge_reset()
1152 ss->tx.done = 0; in myri10ge_reset()
1153 ss->tx.pkt_start = 0; in myri10ge_reset()
1154 ss->tx.pkt_done = 0; in myri10ge_reset()
1159 ss->tx.wake_queue = 0; in myri10ge_reset()
1160 ss->tx.stop_queue = 0; in myri10ge_reset()
1521 struct myri10ge_tx_buf *tx = &ss->tx; in myri10ge_tx_done() local
1526 while (tx->pkt_done != mcp_index) { in myri10ge_tx_done()
1527 idx = tx->done & tx->mask; in myri10ge_tx_done()
1528 skb = tx->info[idx].skb; in myri10ge_tx_done()
1531 tx->info[idx].skb = NULL; in myri10ge_tx_done()
1532 if (tx->info[idx].last) { in myri10ge_tx_done()
1533 tx->pkt_done++; in myri10ge_tx_done()
1534 tx->info[idx].last = 0; in myri10ge_tx_done()
1536 tx->done++; in myri10ge_tx_done()
1537 len = dma_unmap_len(&tx->info[idx], len); in myri10ge_tx_done()
1538 dma_unmap_len_set(&tx->info[idx], len, 0); in myri10ge_tx_done()
1545 dma_unmap_addr(&tx->info[idx], in myri10ge_tx_done()
1551 dma_unmap_addr(&tx->info[idx], in myri10ge_tx_done()
1569 if (tx->req == tx->done) { in myri10ge_tx_done()
1570 tx->queue_active = 0; in myri10ge_tx_done()
1571 put_be32(htonl(1), tx->send_stop); in myri10ge_tx_done()
1580 tx->req - tx->done < (tx->mask >> 1) && in myri10ge_tx_done()
1582 tx->wake_queue++; in myri10ge_tx_done()
1720 struct myri10ge_tx_buf *tx = &ss->tx; in myri10ge_intr() local
1754 if (send_done_count != tx->pkt_done) in myri10ge_intr()
1888 ring->tx_max_pending = mgp->ss[0].tx.mask + 1; in myri10ge_get_ringparam()
2016 data[i++] = (unsigned int)ss->tx.pkt_start; in myri10ge_get_ethtool_stats()
2017 data[i++] = (unsigned int)ss->tx.pkt_done; in myri10ge_get_ethtool_stats()
2018 data[i++] = (unsigned int)ss->tx.req; in myri10ge_get_ethtool_stats()
2019 data[i++] = (unsigned int)ss->tx.done; in myri10ge_get_ethtool_stats()
2022 data[i++] = (unsigned int)ss->tx.wake_queue; in myri10ge_get_ethtool_stats()
2023 data[i++] = (unsigned int)ss->tx.stop_queue; in myri10ge_get_ethtool_stats()
2024 data[i++] = (unsigned int)ss->tx.linearized; in myri10ge_get_ethtool_stats()
2140 ss->tx.mask = tx_ring_entries - 1; in myri10ge_allocate_rings()
2148 * sizeof(*ss->tx.req_list); in myri10ge_allocate_rings()
2149 ss->tx.req_bytes = kzalloc(bytes, GFP_KERNEL); in myri10ge_allocate_rings()
2150 if (ss->tx.req_bytes == NULL) in myri10ge_allocate_rings()
2154 ss->tx.req_list = (struct mcp_kreq_ether_send *) in myri10ge_allocate_rings()
2155 ALIGN((unsigned long)ss->tx.req_bytes, 8); in myri10ge_allocate_rings()
2156 ss->tx.queue_active = 0; in myri10ge_allocate_rings()
2170 bytes = tx_ring_entries * sizeof(*ss->tx.info); in myri10ge_allocate_rings()
2171 ss->tx.info = kzalloc(bytes, GFP_KERNEL); in myri10ge_allocate_rings()
2172 if (ss->tx.info == NULL) in myri10ge_allocate_rings()
2240 kfree(ss->tx.info); in myri10ge_allocate_rings()
2249 kfree(ss->tx.req_bytes); in myri10ge_allocate_rings()
2250 ss->tx.req_bytes = NULL; in myri10ge_allocate_rings()
2251 ss->tx.req_list = NULL; in myri10ge_allocate_rings()
2261 struct myri10ge_tx_buf *tx; in myri10ge_free_rings() local
2265 if (ss->tx.req_list == NULL) in myri10ge_free_rings()
2288 tx = &ss->tx; in myri10ge_free_rings()
2289 while (tx->done != tx->req) { in myri10ge_free_rings()
2290 idx = tx->done & tx->mask; in myri10ge_free_rings()
2291 skb = tx->info[idx].skb; in myri10ge_free_rings()
2294 tx->info[idx].skb = NULL; in myri10ge_free_rings()
2295 tx->done++; in myri10ge_free_rings()
2296 len = dma_unmap_len(&tx->info[idx], len); in myri10ge_free_rings()
2297 dma_unmap_len_set(&tx->info[idx], len, 0); in myri10ge_free_rings()
2303 dma_unmap_addr(&tx->info[idx], in myri10ge_free_rings()
2309 dma_unmap_addr(&tx->info[idx], in myri10ge_free_rings()
2318 kfree(ss->tx.info); in myri10ge_free_rings()
2324 kfree(ss->tx.req_bytes); in myri10ge_free_rings()
2325 ss->tx.req_bytes = NULL; in myri10ge_free_rings()
2326 ss->tx.req_list = NULL; in myri10ge_free_rings()
2424 ss->tx.lanai = (struct mcp_kreq_ether_send __iomem *) in myri10ge_get_txrx()
2438 ss->tx.send_go = (__iomem __be32 *) in myri10ge_get_txrx()
2440 ss->tx.send_stop = (__iomem __be32 *) in myri10ge_get_txrx()
2666 if (mgp->ss[0].tx.req_bytes == NULL) in myri10ge_close()
2713 myri10ge_submit_req_backwards(struct myri10ge_tx_buf *tx, in myri10ge_submit_req_backwards() argument
2717 starting_slot = tx->req; in myri10ge_submit_req_backwards()
2720 idx = (starting_slot + cnt) & tx->mask; in myri10ge_submit_req_backwards()
2721 myri10ge_pio_copy(&tx->lanai[idx], &src[cnt], sizeof(*src)); in myri10ge_submit_req_backwards()
2734 myri10ge_submit_req(struct myri10ge_tx_buf *tx, struct mcp_kreq_ether_send *src, in myri10ge_submit_req() argument
2742 idx = tx->req & tx->mask; in myri10ge_submit_req()
2747 dst = dstp = &tx->lanai[idx]; in myri10ge_submit_req()
2750 if ((idx + cnt) < tx->mask) { in myri10ge_submit_req()
2760 myri10ge_submit_req_backwards(tx, src, cnt); in myri10ge_submit_req()
2772 tx->req += cnt; in myri10ge_submit_req()
2777 struct myri10ge_tx_buf *tx, int idx) in myri10ge_unmap_tx_dma() argument
2783 last_idx = (idx + 1) & tx->mask; in myri10ge_unmap_tx_dma()
2784 idx = tx->req & tx->mask; in myri10ge_unmap_tx_dma()
2786 len = dma_unmap_len(&tx->info[idx], len); in myri10ge_unmap_tx_dma()
2788 if (tx->info[idx].skb != NULL) in myri10ge_unmap_tx_dma()
2790 dma_unmap_addr(&tx->info[idx], in myri10ge_unmap_tx_dma()
2795 dma_unmap_addr(&tx->info[idx], in myri10ge_unmap_tx_dma()
2798 dma_unmap_len_set(&tx->info[idx], len, 0); in myri10ge_unmap_tx_dma()
2799 tx->info[idx].skb = NULL; in myri10ge_unmap_tx_dma()
2801 idx = (idx + 1) & tx->mask; in myri10ge_unmap_tx_dma()
2821 struct myri10ge_tx_buf *tx; in myri10ge_xmit() local
2836 tx = &ss->tx; in myri10ge_xmit()
2839 req = tx->req_list; in myri10ge_xmit()
2840 avail = tx->mask - 1 - (tx->req - tx->done); in myri10ge_xmit()
2852 tx->stop_queue++; in myri10ge_xmit()
2924 idx = tx->req & tx->mask; in myri10ge_xmit()
2925 tx->info[idx].skb = skb; in myri10ge_xmit()
2926 dma_unmap_addr_set(&tx->info[idx], bus, bus); in myri10ge_xmit()
2927 dma_unmap_len_set(&tx->info[idx], len, len); in myri10ge_xmit()
3030 myri10ge_unmap_tx_dma(mgp, tx, idx); in myri10ge_xmit()
3033 idx = (count + tx->req) & tx->mask; in myri10ge_xmit()
3034 dma_unmap_addr_set(&tx->info[idx], bus, bus); in myri10ge_xmit()
3035 dma_unmap_len_set(&tx->info[idx], len, len); in myri10ge_xmit()
3045 idx = ((count - 1) + tx->req) & tx->mask; in myri10ge_xmit()
3046 tx->info[idx].last = 1; in myri10ge_xmit()
3047 myri10ge_submit_req(tx, tx->req_list, count); in myri10ge_xmit()
3050 if ((mgp->dev->real_num_tx_queues > 1) && tx->queue_active == 0) { in myri10ge_xmit()
3051 tx->queue_active = 1; in myri10ge_xmit()
3052 put_be32(htonl(1), tx->send_go); in myri10ge_xmit()
3056 tx->pkt_start++; in myri10ge_xmit()
3058 tx->stop_queue++; in myri10ge_xmit()
3064 myri10ge_unmap_tx_dma(mgp, tx, idx); in myri10ge_xmit()
3074 tx->linearized++; in myri10ge_xmit()
3573 if (ss->tx.req != ss->tx.done && in myri10ge_check_slice()
3574 ss->tx.done == ss->watchdog_tx_done && in myri10ge_check_slice()
3584 slice, ss->tx.queue_active, ss->tx.req, in myri10ge_check_slice()
3585 ss->tx.done, ss->tx.pkt_start, in myri10ge_check_slice()
3586 ss->tx.pkt_done, in myri10ge_check_slice()
3593 if (ss->watchdog_tx_done != ss->tx.done || in myri10ge_check_slice()
3597 ss->watchdog_tx_done = ss->tx.done; in myri10ge_check_slice()
3598 ss->watchdog_tx_req = ss->tx.req; in myri10ge_check_slice()