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()
206 ring->rdata = kcalloc(rdesc_count, sizeof(struct xgbe_ring_data), in xgbe_init_ring()
208 if (!ring->rdata) in xgbe_init_ring()
212 ring->rdesc, ring->rdesc_dma, ring->rdata); in xgbe_init_ring()
319 struct xgbe_ring_data *rdata) in xgbe_map_rx_buffer() argument
338 xgbe_set_buffer_data(&rdata->rx.hdr, &ring->rx_hdr_pa, in xgbe_map_rx_buffer()
342 xgbe_set_buffer_data(&rdata->rx.buf, &ring->rx_buf_pa, in xgbe_map_rx_buffer()
353 struct xgbe_ring_data *rdata; in xgbe_wrapper_tx_descriptor_init() local
370 rdata = XGBE_GET_DESC_DATA(ring, j); in xgbe_wrapper_tx_descriptor_init()
372 rdata->rdesc = rdesc; in xgbe_wrapper_tx_descriptor_init()
373 rdata->rdesc_dma = rdesc_dma; in xgbe_wrapper_tx_descriptor_init()
395 struct xgbe_ring_data *rdata; in xgbe_wrapper_rx_descriptor_init() local
411 rdata = XGBE_GET_DESC_DATA(ring, j); in xgbe_wrapper_rx_descriptor_init()
413 rdata->rdesc = rdesc; in xgbe_wrapper_rx_descriptor_init()
414 rdata->rdesc_dma = rdesc_dma; in xgbe_wrapper_rx_descriptor_init()
416 if (xgbe_map_rx_buffer(pdata, ring, rdata)) in xgbe_wrapper_rx_descriptor_init()
433 struct xgbe_ring_data *rdata) in xgbe_unmap_rdata() argument
435 if (rdata->skb_dma) { in xgbe_unmap_rdata()
436 if (rdata->mapped_as_page) { in xgbe_unmap_rdata()
437 dma_unmap_page(pdata->dev, rdata->skb_dma, in xgbe_unmap_rdata()
438 rdata->skb_dma_len, DMA_TO_DEVICE); in xgbe_unmap_rdata()
440 dma_unmap_single(pdata->dev, rdata->skb_dma, in xgbe_unmap_rdata()
441 rdata->skb_dma_len, DMA_TO_DEVICE); in xgbe_unmap_rdata()
443 rdata->skb_dma = 0; in xgbe_unmap_rdata()
444 rdata->skb_dma_len = 0; in xgbe_unmap_rdata()
447 if (rdata->skb) { in xgbe_unmap_rdata()
448 dev_kfree_skb_any(rdata->skb); in xgbe_unmap_rdata()
449 rdata->skb = NULL; in xgbe_unmap_rdata()
452 if (rdata->rx.hdr.pa.pages) in xgbe_unmap_rdata()
453 put_page(rdata->rx.hdr.pa.pages); in xgbe_unmap_rdata()
455 if (rdata->rx.hdr.pa_unmap.pages) { in xgbe_unmap_rdata()
456 dma_unmap_page(pdata->dev, rdata->rx.hdr.pa_unmap.pages_dma, in xgbe_unmap_rdata()
457 rdata->rx.hdr.pa_unmap.pages_len, in xgbe_unmap_rdata()
459 put_page(rdata->rx.hdr.pa_unmap.pages); in xgbe_unmap_rdata()
462 if (rdata->rx.buf.pa.pages) in xgbe_unmap_rdata()
463 put_page(rdata->rx.buf.pa.pages); in xgbe_unmap_rdata()
465 if (rdata->rx.buf.pa_unmap.pages) { in xgbe_unmap_rdata()
466 dma_unmap_page(pdata->dev, rdata->rx.buf.pa_unmap.pages_dma, in xgbe_unmap_rdata()
467 rdata->rx.buf.pa_unmap.pages_len, in xgbe_unmap_rdata()
469 put_page(rdata->rx.buf.pa_unmap.pages); in xgbe_unmap_rdata()
472 memset(&rdata->tx, 0, sizeof(rdata->tx)); in xgbe_unmap_rdata()
473 memset(&rdata->rx, 0, sizeof(rdata->rx)); in xgbe_unmap_rdata()
475 rdata->mapped_as_page = 0; in xgbe_unmap_rdata()
477 if (rdata->state_saved) { in xgbe_unmap_rdata()
478 rdata->state_saved = 0; in xgbe_unmap_rdata()
479 rdata->state.incomplete = 0; in xgbe_unmap_rdata()
480 rdata->state.context_next = 0; in xgbe_unmap_rdata()
481 rdata->state.skb = NULL; in xgbe_unmap_rdata()
482 rdata->state.len = 0; in xgbe_unmap_rdata()
483 rdata->state.error = 0; in xgbe_unmap_rdata()
491 struct xgbe_ring_data *rdata; in xgbe_map_tx_skb() local
518 rdata = XGBE_GET_DESC_DATA(ring, cur_index); in xgbe_map_tx_skb()
530 rdata->skb_dma = skb_dma; in xgbe_map_tx_skb()
531 rdata->skb_dma_len = packet->header_len; in xgbe_map_tx_skb()
538 rdata = XGBE_GET_DESC_DATA(ring, cur_index); in xgbe_map_tx_skb()
551 rdata->skb_dma = skb_dma; in xgbe_map_tx_skb()
552 rdata->skb_dma_len = len; in xgbe_map_tx_skb()
562 rdata = XGBE_GET_DESC_DATA(ring, cur_index); in xgbe_map_tx_skb()
582 rdata->skb_dma = skb_dma; in xgbe_map_tx_skb()
583 rdata->skb_dma_len = len; in xgbe_map_tx_skb()
584 rdata->mapped_as_page = 1; in xgbe_map_tx_skb()
594 rdata = XGBE_GET_DESC_DATA(ring, cur_index); in xgbe_map_tx_skb()
602 rdata = XGBE_GET_DESC_DATA(ring, cur_index - 1); in xgbe_map_tx_skb()
603 rdata->skb = skb; in xgbe_map_tx_skb()
614 rdata = XGBE_GET_DESC_DATA(ring, start_index++); in xgbe_map_tx_skb()
615 xgbe_unmap_rdata(pdata, rdata); in xgbe_map_tx_skb()