Lines Matching refs:pdata

122 static void xgbe_free_ring(struct xgbe_prv_data *pdata,  in xgbe_free_ring()  argument
134 xgbe_unmap_rdata(pdata, rdata); in xgbe_free_ring()
142 dma_unmap_page(pdata->dev, ring->rx_hdr_pa.pages_dma, in xgbe_free_ring()
153 dma_unmap_page(pdata->dev, ring->rx_buf_pa.pages_dma, in xgbe_free_ring()
164 dma_free_coherent(pdata->dev, in xgbe_free_ring()
172 static void xgbe_free_ring_resources(struct xgbe_prv_data *pdata) in xgbe_free_ring_resources() argument
179 channel = pdata->channel; in xgbe_free_ring_resources()
180 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_free_ring_resources()
181 xgbe_free_ring(pdata, channel->tx_ring); in xgbe_free_ring_resources()
182 xgbe_free_ring(pdata, channel->rx_ring); in xgbe_free_ring_resources()
188 static int xgbe_init_ring(struct xgbe_prv_data *pdata, in xgbe_init_ring() argument
198 ring->rdesc = dma_alloc_coherent(pdata->dev, in xgbe_init_ring()
211 netif_dbg(pdata, drv, pdata->netdev, in xgbe_init_ring()
220 static int xgbe_alloc_ring_resources(struct xgbe_prv_data *pdata) in xgbe_alloc_ring_resources() argument
228 channel = pdata->channel; in xgbe_alloc_ring_resources()
229 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_alloc_ring_resources()
230 netif_dbg(pdata, drv, pdata->netdev, "%s - Tx ring:\n", in xgbe_alloc_ring_resources()
233 ret = xgbe_init_ring(pdata, channel->tx_ring, in xgbe_alloc_ring_resources()
234 pdata->tx_desc_count); in xgbe_alloc_ring_resources()
236 netdev_alert(pdata->netdev, in xgbe_alloc_ring_resources()
241 netif_dbg(pdata, drv, pdata->netdev, "%s - Rx ring:\n", in xgbe_alloc_ring_resources()
244 ret = xgbe_init_ring(pdata, channel->rx_ring, in xgbe_alloc_ring_resources()
245 pdata->rx_desc_count); in xgbe_alloc_ring_resources()
247 netdev_alert(pdata->netdev, in xgbe_alloc_ring_resources()
258 xgbe_free_ring_resources(pdata); in xgbe_alloc_ring_resources()
263 static int xgbe_alloc_pages(struct xgbe_prv_data *pdata, in xgbe_alloc_pages() argument
283 pages_dma = dma_map_page(pdata->dev, pages, 0, in xgbe_alloc_pages()
285 ret = dma_mapping_error(pdata->dev, pages_dma); in xgbe_alloc_pages()
323 static int xgbe_map_rx_buffer(struct xgbe_prv_data *pdata, in xgbe_map_rx_buffer() argument
330 ret = xgbe_alloc_pages(pdata, &ring->rx_hdr_pa, GFP_ATOMIC, 0); in xgbe_map_rx_buffer()
337 ret = xgbe_alloc_pages(pdata, &ring->rx_buf_pa, GFP_ATOMIC, in xgbe_map_rx_buffer()
349 pdata->rx_buf_size); in xgbe_map_rx_buffer()
354 static void xgbe_wrapper_tx_descriptor_init(struct xgbe_prv_data *pdata) in xgbe_wrapper_tx_descriptor_init() argument
356 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_wrapper_tx_descriptor_init()
366 channel = pdata->channel; in xgbe_wrapper_tx_descriptor_init()
367 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_wrapper_tx_descriptor_init()
395 static void xgbe_wrapper_rx_descriptor_init(struct xgbe_prv_data *pdata) in xgbe_wrapper_rx_descriptor_init() argument
397 struct xgbe_hw_if *hw_if = &pdata->hw_if; in xgbe_wrapper_rx_descriptor_init()
407 channel = pdata->channel; in xgbe_wrapper_rx_descriptor_init()
408 for (i = 0; i < pdata->channel_count; i++, channel++) { in xgbe_wrapper_rx_descriptor_init()
422 if (xgbe_map_rx_buffer(pdata, ring, rdata)) in xgbe_wrapper_rx_descriptor_init()
438 static void xgbe_unmap_rdata(struct xgbe_prv_data *pdata, in xgbe_unmap_rdata() argument
443 dma_unmap_page(pdata->dev, rdata->skb_dma, in xgbe_unmap_rdata()
446 dma_unmap_single(pdata->dev, rdata->skb_dma, in xgbe_unmap_rdata()
462 dma_unmap_page(pdata->dev, rdata->rx.hdr.pa_unmap.pages_dma, in xgbe_unmap_rdata()
472 dma_unmap_page(pdata->dev, rdata->rx.buf.pa_unmap.pages_dma, in xgbe_unmap_rdata()
493 struct xgbe_prv_data *pdata = channel->pdata; in xgbe_map_tx_skb() local
526 skb_dma = dma_map_single(pdata->dev, skb->data, in xgbe_map_tx_skb()
528 if (dma_mapping_error(pdata->dev, skb_dma)) { in xgbe_map_tx_skb()
529 netdev_alert(pdata->netdev, "dma_map_single failed\n"); in xgbe_map_tx_skb()
534 netif_dbg(pdata, tx_queued, pdata->netdev, in xgbe_map_tx_skb()
550 skb_dma = dma_map_single(pdata->dev, skb->data + offset, len, in xgbe_map_tx_skb()
552 if (dma_mapping_error(pdata->dev, skb_dma)) { in xgbe_map_tx_skb()
553 netdev_alert(pdata->netdev, "dma_map_single failed\n"); in xgbe_map_tx_skb()
558 netif_dbg(pdata, tx_queued, pdata->netdev, in xgbe_map_tx_skb()
572 netif_dbg(pdata, tx_queued, pdata->netdev, in xgbe_map_tx_skb()
582 skb_dma = skb_frag_dma_map(pdata->dev, frag, offset, in xgbe_map_tx_skb()
584 if (dma_mapping_error(pdata->dev, skb_dma)) { in xgbe_map_tx_skb()
585 netdev_alert(pdata->netdev, in xgbe_map_tx_skb()
592 netif_dbg(pdata, tx_queued, pdata->netdev, in xgbe_map_tx_skb()
623 xgbe_unmap_rdata(pdata, rdata); in xgbe_map_tx_skb()