Lines Matching refs:ring
223 static inline unsigned int xgbe_tx_avail_desc(struct xgbe_ring *ring) in xgbe_tx_avail_desc() argument
225 return (ring->rdesc_count - (ring->cur - ring->dirty)); in xgbe_tx_avail_desc()
228 static inline unsigned int xgbe_rx_dirty_desc(struct xgbe_ring *ring) in xgbe_rx_dirty_desc() argument
230 return (ring->cur - ring->dirty); in xgbe_rx_dirty_desc()
234 struct xgbe_ring *ring, unsigned int count) in xgbe_maybe_stop_tx_queue() argument
238 if (count > xgbe_tx_avail_desc(ring)) { in xgbe_maybe_stop_tx_queue()
242 ring->tx.queue_stopped = 1; in xgbe_maybe_stop_tx_queue()
247 if (ring->tx.xmit_more) in xgbe_maybe_stop_tx_queue()
248 pdata->hw_if.tx_start_xmit(channel, ring); in xgbe_maybe_stop_tx_queue()
740 struct xgbe_ring *ring; in xgbe_free_tx_data() local
748 ring = channel->tx_ring; in xgbe_free_tx_data()
749 if (!ring) in xgbe_free_tx_data()
752 for (j = 0; j < ring->rdesc_count; j++) { in xgbe_free_tx_data()
753 rdata = XGBE_GET_DESC_DATA(ring, j); in xgbe_free_tx_data()
765 struct xgbe_ring *ring; in xgbe_free_rx_data() local
773 ring = channel->rx_ring; in xgbe_free_rx_data()
774 if (!ring) in xgbe_free_rx_data()
777 for (j = 0; j < ring->rdesc_count; j++) { in xgbe_free_rx_data()
778 rdata = XGBE_GET_DESC_DATA(ring, j); in xgbe_free_rx_data()
1226 struct xgbe_ring *ring, struct sk_buff *skb, in xgbe_packet_info() argument
1244 if (skb_shinfo(skb)->gso_size != ring->tx.cur_mss) { in xgbe_packet_info()
1262 if (skb_vlan_tag_get(skb) != ring->tx.cur_vlan_ctag) in xgbe_packet_info()
1397 struct xgbe_ring *ring; in xgbe_xmit() local
1406 ring = channel->tx_ring; in xgbe_xmit()
1407 packet = &ring->packet_data; in xgbe_xmit()
1420 xgbe_packet_info(pdata, ring, skb, packet); in xgbe_xmit()
1423 ret = xgbe_maybe_stop_tx_queue(channel, ring, packet->rdesc_count); in xgbe_xmit()
1453 xgbe_maybe_stop_tx_queue(channel, ring, XGBE_TX_MAX_DESCS); in xgbe_xmit()
1729 struct xgbe_ring *ring = channel->rx_ring; in xgbe_rx_refresh() local
1732 while (ring->dirty != ring->cur) { in xgbe_rx_refresh()
1733 rdata = XGBE_GET_DESC_DATA(ring, ring->dirty); in xgbe_rx_refresh()
1738 if (desc_if->map_rx_buffer(pdata, ring, rdata)) in xgbe_rx_refresh()
1741 hw_if->rx_desc_reset(pdata, rdata, ring->dirty); in xgbe_rx_refresh()
1743 ring->dirty++; in xgbe_rx_refresh()
1751 rdata = XGBE_GET_DESC_DATA(ring, ring->dirty - 1); in xgbe_rx_refresh()
1807 struct xgbe_ring *ring = channel->tx_ring; in xgbe_tx_poll() local
1819 if (!ring) in xgbe_tx_poll()
1822 cur = ring->cur; in xgbe_tx_poll()
1830 (ring->dirty != cur)) { in xgbe_tx_poll()
1831 rdata = XGBE_GET_DESC_DATA(ring, ring->dirty); in xgbe_tx_poll()
1842 xgbe_dump_tx_desc(pdata, ring, ring->dirty, 1, 0); in xgbe_tx_poll()
1854 ring->dirty++; in xgbe_tx_poll()
1862 if ((ring->tx.queue_stopped == 1) && in xgbe_tx_poll()
1863 (xgbe_tx_avail_desc(ring) > XGBE_TX_DESC_MIN_FREE)) { in xgbe_tx_poll()
1864 ring->tx.queue_stopped = 0; in xgbe_tx_poll()
1877 struct xgbe_ring *ring = channel->rx_ring; in xgbe_rx_poll() local
1892 if (!ring) in xgbe_rx_poll()
1900 rdata = XGBE_GET_DESC_DATA(ring, ring->cur); in xgbe_rx_poll()
1901 packet = &ring->packet_data; in xgbe_rx_poll()
1903 DBGPR(" cur = %d\n", ring->cur); in xgbe_rx_poll()
1918 rdata = XGBE_GET_DESC_DATA(ring, ring->cur); in xgbe_rx_poll()
1920 if (xgbe_rx_dirty_desc(ring) > (XGBE_RX_DESC_CNT >> 3)) in xgbe_rx_poll()
1927 ring->cur++; in xgbe_rx_poll()
2037 rdata = XGBE_GET_DESC_DATA(ring, ring->cur); in xgbe_rx_poll()
2119 void xgbe_dump_tx_desc(struct xgbe_prv_data *pdata, struct xgbe_ring *ring, in xgbe_dump_tx_desc() argument
2126 rdata = XGBE_GET_DESC_DATA(ring, idx); in xgbe_dump_tx_desc()
2139 void xgbe_dump_rx_desc(struct xgbe_prv_data *pdata, struct xgbe_ring *ring, in xgbe_dump_rx_desc() argument
2145 rdata = XGBE_GET_DESC_DATA(ring, idx); in xgbe_dump_rx_desc()