Lines Matching refs:rdata
125 struct xgbe_ring_data *rdata; in xgbe_free_ring() local
131 if (ring->rdata) { in xgbe_free_ring()
133 rdata = XGBE_GET_DESC_DATA(ring, i); in xgbe_free_ring()
134 xgbe_unmap_rdata(pdata, rdata); in xgbe_free_ring()
137 kfree(ring->rdata); in xgbe_free_ring()
138 ring->rdata = NULL; in xgbe_free_ring()
235 ring->rdata = xgbe_alloc_node(size, ring->node); in xgbe_init_ring()
236 if (!ring->rdata) in xgbe_init_ring()
241 ring->rdesc, &ring->rdesc_dma, ring->rdata, ring->node); in xgbe_init_ring()
358 struct xgbe_ring_data *rdata) in xgbe_map_rx_buffer() argument
376 xgbe_set_buffer_data(&rdata->rx.hdr, &ring->rx_hdr_pa, in xgbe_map_rx_buffer()
380 xgbe_set_buffer_data(&rdata->rx.buf, &ring->rx_buf_pa, in xgbe_map_rx_buffer()
391 struct xgbe_ring_data *rdata; in xgbe_wrapper_tx_descriptor_init() local
408 rdata = XGBE_GET_DESC_DATA(ring, j); in xgbe_wrapper_tx_descriptor_init()
410 rdata->rdesc = rdesc; in xgbe_wrapper_tx_descriptor_init()
411 rdata->rdesc_dma = rdesc_dma; in xgbe_wrapper_tx_descriptor_init()
433 struct xgbe_ring_data *rdata; in xgbe_wrapper_rx_descriptor_init() local
449 rdata = XGBE_GET_DESC_DATA(ring, j); in xgbe_wrapper_rx_descriptor_init()
451 rdata->rdesc = rdesc; in xgbe_wrapper_rx_descriptor_init()
452 rdata->rdesc_dma = rdesc_dma; in xgbe_wrapper_rx_descriptor_init()
454 if (xgbe_map_rx_buffer(pdata, ring, rdata)) in xgbe_wrapper_rx_descriptor_init()
471 struct xgbe_ring_data *rdata) in xgbe_unmap_rdata() argument
473 if (rdata->skb_dma) { in xgbe_unmap_rdata()
474 if (rdata->mapped_as_page) { in xgbe_unmap_rdata()
475 dma_unmap_page(pdata->dev, rdata->skb_dma, in xgbe_unmap_rdata()
476 rdata->skb_dma_len, DMA_TO_DEVICE); in xgbe_unmap_rdata()
478 dma_unmap_single(pdata->dev, rdata->skb_dma, in xgbe_unmap_rdata()
479 rdata->skb_dma_len, DMA_TO_DEVICE); in xgbe_unmap_rdata()
481 rdata->skb_dma = 0; in xgbe_unmap_rdata()
482 rdata->skb_dma_len = 0; in xgbe_unmap_rdata()
485 if (rdata->skb) { in xgbe_unmap_rdata()
486 dev_kfree_skb_any(rdata->skb); in xgbe_unmap_rdata()
487 rdata->skb = NULL; in xgbe_unmap_rdata()
490 if (rdata->rx.hdr.pa.pages) in xgbe_unmap_rdata()
491 put_page(rdata->rx.hdr.pa.pages); in xgbe_unmap_rdata()
493 if (rdata->rx.hdr.pa_unmap.pages) { in xgbe_unmap_rdata()
494 dma_unmap_page(pdata->dev, rdata->rx.hdr.pa_unmap.pages_dma, in xgbe_unmap_rdata()
495 rdata->rx.hdr.pa_unmap.pages_len, in xgbe_unmap_rdata()
497 put_page(rdata->rx.hdr.pa_unmap.pages); in xgbe_unmap_rdata()
500 if (rdata->rx.buf.pa.pages) in xgbe_unmap_rdata()
501 put_page(rdata->rx.buf.pa.pages); in xgbe_unmap_rdata()
503 if (rdata->rx.buf.pa_unmap.pages) { in xgbe_unmap_rdata()
504 dma_unmap_page(pdata->dev, rdata->rx.buf.pa_unmap.pages_dma, in xgbe_unmap_rdata()
505 rdata->rx.buf.pa_unmap.pages_len, in xgbe_unmap_rdata()
507 put_page(rdata->rx.buf.pa_unmap.pages); in xgbe_unmap_rdata()
510 memset(&rdata->tx, 0, sizeof(rdata->tx)); in xgbe_unmap_rdata()
511 memset(&rdata->rx, 0, sizeof(rdata->rx)); in xgbe_unmap_rdata()
513 rdata->mapped_as_page = 0; in xgbe_unmap_rdata()
515 if (rdata->state_saved) { in xgbe_unmap_rdata()
516 rdata->state_saved = 0; in xgbe_unmap_rdata()
517 rdata->state.skb = NULL; in xgbe_unmap_rdata()
518 rdata->state.len = 0; in xgbe_unmap_rdata()
519 rdata->state.error = 0; in xgbe_unmap_rdata()
527 struct xgbe_ring_data *rdata; in xgbe_map_tx_skb() local
554 rdata = XGBE_GET_DESC_DATA(ring, cur_index); in xgbe_map_tx_skb()
564 rdata->skb_dma = skb_dma; in xgbe_map_tx_skb()
565 rdata->skb_dma_len = packet->header_len; in xgbe_map_tx_skb()
575 rdata = XGBE_GET_DESC_DATA(ring, cur_index); in xgbe_map_tx_skb()
588 rdata->skb_dma = skb_dma; in xgbe_map_tx_skb()
589 rdata->skb_dma_len = len; in xgbe_map_tx_skb()
600 rdata = XGBE_GET_DESC_DATA(ring, cur_index); in xgbe_map_tx_skb()
621 rdata->skb_dma = skb_dma; in xgbe_map_tx_skb()
622 rdata->skb_dma_len = len; in xgbe_map_tx_skb()
623 rdata->mapped_as_page = 1; in xgbe_map_tx_skb()
634 rdata = XGBE_GET_DESC_DATA(ring, cur_index); in xgbe_map_tx_skb()
642 rdata = XGBE_GET_DESC_DATA(ring, cur_index - 1); in xgbe_map_tx_skb()
643 rdata->skb = skb; in xgbe_map_tx_skb()
654 rdata = XGBE_GET_DESC_DATA(ring, start_index++); in xgbe_map_tx_skb()
655 xgbe_unmap_rdata(pdata, rdata); in xgbe_map_tx_skb()