Lines Matching refs:ring

123 			   struct xgbe_ring *ring)
128 if (!ring)
131 if (ring->rdata) {
132 for (i = 0; i < ring->rdesc_count; i++) {
133 rdata = XGBE_GET_DESC_DATA(ring, i);
137 kfree(ring->rdata);
138 ring->rdata = NULL;
141 if (ring->rx_hdr_pa.pages) {
142 dma_unmap_page(pdata->dev, ring->rx_hdr_pa.pages_dma,
143 ring->rx_hdr_pa.pages_len, DMA_FROM_DEVICE);
144 put_page(ring->rx_hdr_pa.pages);
146 ring->rx_hdr_pa.pages = NULL;
147 ring->rx_hdr_pa.pages_len = 0;
148 ring->rx_hdr_pa.pages_offset = 0;
149 ring->rx_hdr_pa.pages_dma = 0;
152 if (ring->rx_buf_pa.pages) {
153 dma_unmap_page(pdata->dev, ring->rx_buf_pa.pages_dma,
154 ring->rx_buf_pa.pages_len, DMA_FROM_DEVICE);
155 put_page(ring->rx_buf_pa.pages);
157 ring->rx_buf_pa.pages = NULL;
158 ring->rx_buf_pa.pages_len = 0;
159 ring->rx_buf_pa.pages_offset = 0;
160 ring->rx_buf_pa.pages_dma = 0;
163 if (ring->rdesc) {
166 ring->rdesc_count),
167 ring->rdesc, ring->rdesc_dma);
168 ring->rdesc = NULL;
216 struct xgbe_ring *ring, unsigned int rdesc_count)
220 if (!ring)
226 ring->rdesc_count = rdesc_count;
227 ring->rdesc = xgbe_dma_alloc_node(pdata->dev, size, &ring->rdesc_dma,
228 ring->node);
229 if (!ring->rdesc)
235 ring->rdata = xgbe_alloc_node(size, ring->node);
236 if (!ring->rdata)
241 ring->rdesc, &ring->rdesc_dma, ring->rdata, ring->node);
254 netif_dbg(pdata, drv, pdata->netdev, "%s - Tx ring:\n",
261 "error initializing Tx ring\n");
265 netif_dbg(pdata, drv, pdata->netdev, "%s - Rx ring:\n",
272 "error initializing Rx ring\n");
357 struct xgbe_ring *ring,
362 if (!ring->rx_hdr_pa.pages) {
363 ret = xgbe_alloc_pages(pdata, &ring->rx_hdr_pa, 0, ring->node);
368 if (!ring->rx_buf_pa.pages) {
369 ret = xgbe_alloc_pages(pdata, &ring->rx_buf_pa,
370 PAGE_ALLOC_COSTLY_ORDER, ring->node);
376 xgbe_set_buffer_data(&rdata->rx.hdr, &ring->rx_hdr_pa,
380 xgbe_set_buffer_data(&rdata->rx.buf, &ring->rx_buf_pa,
390 struct xgbe_ring *ring;
400 ring = channel->tx_ring;
401 if (!ring)
404 rdesc = ring->rdesc;
405 rdesc_dma = ring->rdesc_dma;
407 for (j = 0; j < ring->rdesc_count; j++) {
408 rdata = XGBE_GET_DESC_DATA(ring, j);
417 ring->cur = 0;
418 ring->dirty = 0;
419 memset(&ring->tx, 0, sizeof(ring->tx));
431 struct xgbe_ring *ring;
441 ring = channel->rx_ring;
442 if (!ring)
445 rdesc = ring->rdesc;
446 rdesc_dma = ring->rdesc_dma;
448 for (j = 0; j < ring->rdesc_count; j++) {
449 rdata = XGBE_GET_DESC_DATA(ring, j);
454 if (xgbe_map_rx_buffer(pdata, ring, rdata))
461 ring->cur = 0;
462 ring->dirty = 0;
526 struct xgbe_ring *ring = channel->tx_ring;
535 DBGPR("-->xgbe_map_tx_skb: cur = %d\n", ring->cur);
538 start_index = ring->cur;
539 cur_index = ring->cur;
541 packet = &ring->packet_data;
551 if ((tso && (packet->mss != ring->tx.cur_mss)) ||
552 (vlan && (packet->vlan_ctag != ring->tx.cur_vlan_ctag)))
554 rdata = XGBE_GET_DESC_DATA(ring, cur_index);
575 rdata = XGBE_GET_DESC_DATA(ring, cur_index);
600 rdata = XGBE_GET_DESC_DATA(ring, cur_index);
634 rdata = XGBE_GET_DESC_DATA(ring, cur_index);
642 rdata = XGBE_GET_DESC_DATA(ring, cur_index - 1);
654 rdata = XGBE_GET_DESC_DATA(ring, start_index++);