Lines Matching refs:ring

75 			     struct xlgmac_ring *ring)
80 if (!ring)
83 if (ring->desc_data_head) {
84 for (i = 0; i < ring->dma_desc_count; i++) {
85 desc_data = XLGMAC_GET_DESC_DATA(ring, i);
89 kfree(ring->desc_data_head);
90 ring->desc_data_head = NULL;
93 if (ring->rx_hdr_pa.pages) {
94 dma_unmap_page(pdata->dev, ring->rx_hdr_pa.pages_dma,
95 ring->rx_hdr_pa.pages_len, DMA_FROM_DEVICE);
96 put_page(ring->rx_hdr_pa.pages);
98 ring->rx_hdr_pa.pages = NULL;
99 ring->rx_hdr_pa.pages_len = 0;
100 ring->rx_hdr_pa.pages_offset = 0;
101 ring->rx_hdr_pa.pages_dma = 0;
104 if (ring->rx_buf_pa.pages) {
105 dma_unmap_page(pdata->dev, ring->rx_buf_pa.pages_dma,
106 ring->rx_buf_pa.pages_len, DMA_FROM_DEVICE);
107 put_page(ring->rx_buf_pa.pages);
109 ring->rx_buf_pa.pages = NULL;
110 ring->rx_buf_pa.pages_len = 0;
111 ring->rx_buf_pa.pages_offset = 0;
112 ring->rx_buf_pa.pages_dma = 0;
115 if (ring->dma_desc_head) {
118 ring->dma_desc_count),
119 ring->dma_desc_head,
120 ring->dma_desc_head_addr);
121 ring->dma_desc_head = NULL;
126 struct xlgmac_ring *ring,
129 if (!ring)
133 ring->dma_desc_count = dma_desc_count;
134 ring->dma_desc_head = dma_alloc_coherent(pdata->dev,
137 &ring->dma_desc_head_addr,
139 if (!ring->dma_desc_head)
143 ring->desc_data_head = kcalloc(dma_desc_count,
146 if (!ring->desc_data_head)
151 ring->dma_desc_head,
152 &ring->dma_desc_head_addr,
153 ring->desc_data_head);
181 netif_dbg(pdata, drv, pdata->netdev, "%s - Tx ring:\n",
189 "error initializing Tx ring");
193 netif_dbg(pdata, drv, pdata->netdev, "%s - Rx ring:\n",
200 "error initializing Rx ring\n");
390 struct xlgmac_ring *ring,
395 if (!ring->rx_hdr_pa.pages) {
396 ret = xlgmac_alloc_pages(pdata, &ring->rx_hdr_pa,
402 if (!ring->rx_buf_pa.pages) {
404 ret = xlgmac_alloc_pages(pdata, &ring->rx_buf_pa,
411 xlgmac_set_buffer_data(&desc_data->rx.hdr, &ring->rx_hdr_pa,
415 xlgmac_set_buffer_data(&desc_data->rx.buf, &ring->rx_buf_pa,
427 struct xlgmac_ring *ring;
433 ring = channel->tx_ring;
434 if (!ring)
437 dma_desc = ring->dma_desc_head;
438 dma_desc_addr = ring->dma_desc_head_addr;
440 for (j = 0; j < ring->dma_desc_count; j++) {
441 desc_data = XLGMAC_GET_DESC_DATA(ring, j);
450 ring->cur = 0;
451 ring->dirty = 0;
452 memset(&ring->tx, 0, sizeof(ring->tx));
464 struct xlgmac_ring *ring;
470 ring = channel->rx_ring;
471 if (!ring)
474 dma_desc = ring->dma_desc_head;
475 dma_desc_addr = ring->dma_desc_head_addr;
477 for (j = 0; j < ring->dma_desc_count; j++) {
478 desc_data = XLGMAC_GET_DESC_DATA(ring, j);
483 if (xlgmac_map_rx_buffer(pdata, ring, desc_data))
490 ring->cur = 0;
491 ring->dirty = 0;
501 struct xlgmac_ring *ring = channel->tx_ring;
512 start_index = ring->cur;
513 cur_index = ring->cur;
515 pkt_info = &ring->pkt_info;
527 if ((tso && (pkt_info->mss != ring->tx.cur_mss)) ||
528 (vlan && (pkt_info->vlan_ctag != ring->tx.cur_vlan_ctag)))
530 desc_data = XLGMAC_GET_DESC_DATA(ring, cur_index);
551 desc_data = XLGMAC_GET_DESC_DATA(ring, cur_index);
576 desc_data = XLGMAC_GET_DESC_DATA(ring, cur_index);
610 desc_data = XLGMAC_GET_DESC_DATA(ring, cur_index);
618 desc_data = XLGMAC_GET_DESC_DATA(ring, cur_index - 1);
628 desc_data = XLGMAC_GET_DESC_DATA(ring, start_index++);