Lines Matching refs:bdp
220 struct bufdesc *fec_enet_get_nextdesc(struct bufdesc *bdp, in fec_enet_get_nextdesc() argument
224 struct bufdesc *new_bd = bdp + 1; in fec_enet_get_nextdesc()
225 struct bufdesc_ex *ex_new_bd = (struct bufdesc_ex *)bdp + 1; in fec_enet_get_nextdesc()
232 if (bdp >= txq->tx_bd_base) { in fec_enet_get_nextdesc()
251 struct bufdesc *fec_enet_get_prevdesc(struct bufdesc *bdp, in fec_enet_get_prevdesc() argument
255 struct bufdesc *new_bd = bdp - 1; in fec_enet_get_prevdesc()
256 struct bufdesc_ex *ex_new_bd = (struct bufdesc_ex *)bdp - 1; in fec_enet_get_prevdesc()
263 if (bdp >= txq->tx_bd_base) { in fec_enet_get_prevdesc()
280 static int fec_enet_get_bd_index(struct bufdesc *base, struct bufdesc *bdp, in fec_enet_get_bd_index() argument
283 return ((const char *)bdp - (const char *)base) / fep->bufdesc_size; in fec_enet_get_bd_index()
319 struct bufdesc *bdp; in fec_dump() local
327 bdp = txq->tx_bd_base; in fec_dump()
332 bdp == txq->cur_tx ? 'S' : ' ', in fec_dump()
333 bdp == txq->dirty_tx ? 'H' : ' ', in fec_dump()
334 bdp->cbd_sc, bdp->cbd_bufaddr, bdp->cbd_datlen, in fec_dump()
336 bdp = fec_enet_get_nextdesc(bdp, fep, 0); in fec_dump()
338 } while (bdp != txq->tx_bd_base); in fec_dump()
369 struct bufdesc *bdp = txq->cur_tx; in fec_enet_txq_submit_frag_skb() local
384 bdp = fec_enet_get_nextdesc(bdp, fep, queue); in fec_enet_txq_submit_frag_skb()
385 ebdp = (struct bufdesc_ex *)bdp; in fec_enet_txq_submit_frag_skb()
387 status = bdp->cbd_sc; in fec_enet_txq_submit_frag_skb()
414 index = fec_enet_get_bd_index(txq->tx_bd_base, bdp, fep); in fec_enet_txq_submit_frag_skb()
433 bdp->cbd_bufaddr = addr; in fec_enet_txq_submit_frag_skb()
434 bdp->cbd_datlen = frag_len; in fec_enet_txq_submit_frag_skb()
435 bdp->cbd_sc = status; in fec_enet_txq_submit_frag_skb()
438 txq->cur_tx = bdp; in fec_enet_txq_submit_frag_skb()
443 bdp = txq->cur_tx; in fec_enet_txq_submit_frag_skb()
445 bdp = fec_enet_get_nextdesc(bdp, fep, queue); in fec_enet_txq_submit_frag_skb()
446 dma_unmap_single(&fep->pdev->dev, bdp->cbd_bufaddr, in fec_enet_txq_submit_frag_skb()
447 bdp->cbd_datlen, DMA_TO_DEVICE); in fec_enet_txq_submit_frag_skb()
457 struct bufdesc *bdp, *last_bdp; in fec_enet_txq_submit_skb() local
483 bdp = txq->cur_tx; in fec_enet_txq_submit_skb()
484 status = bdp->cbd_sc; in fec_enet_txq_submit_skb()
492 index = fec_enet_get_bd_index(txq->tx_bd_base, bdp, fep); in fec_enet_txq_submit_skb()
527 struct bufdesc_ex *ebdp = (struct bufdesc_ex *)bdp; in fec_enet_txq_submit_skb()
548 bdp->cbd_datlen = buflen; in fec_enet_txq_submit_skb()
549 bdp->cbd_bufaddr = addr; in fec_enet_txq_submit_skb()
555 bdp->cbd_sc = status; in fec_enet_txq_submit_skb()
558 bdp = fec_enet_get_nextdesc(last_bdp, fep, queue); in fec_enet_txq_submit_skb()
562 txq->cur_tx = bdp; in fec_enet_txq_submit_skb()
573 struct bufdesc *bdp, int index, char *data, in fec_enet_txq_put_data_tso() argument
577 struct bufdesc_ex *ebdp = container_of(bdp, struct bufdesc_ex, desc); in fec_enet_txq_put_data_tso()
583 status = bdp->cbd_sc; in fec_enet_txq_put_data_tso()
605 bdp->cbd_datlen = size; in fec_enet_txq_put_data_tso()
606 bdp->cbd_bufaddr = addr; in fec_enet_txq_put_data_tso()
626 bdp->cbd_sc = status; in fec_enet_txq_put_data_tso()
634 struct bufdesc *bdp, int index) in fec_enet_txq_put_hdr_tso() argument
638 struct bufdesc_ex *ebdp = container_of(bdp, struct bufdesc_ex, desc); in fec_enet_txq_put_hdr_tso()
645 status = bdp->cbd_sc; in fec_enet_txq_put_hdr_tso()
669 bdp->cbd_bufaddr = dmabuf; in fec_enet_txq_put_hdr_tso()
670 bdp->cbd_datlen = hdr_len; in fec_enet_txq_put_hdr_tso()
681 bdp->cbd_sc = status; in fec_enet_txq_put_hdr_tso()
693 struct bufdesc *bdp = txq->cur_tx; in fec_enet_txq_submit_tso() local
719 index = fec_enet_get_bd_index(txq->tx_bd_base, bdp, fep); in fec_enet_txq_submit_tso()
726 ret = fec_enet_txq_put_hdr_tso(txq, skb, ndev, bdp, index); in fec_enet_txq_submit_tso()
734 bdp = fec_enet_get_nextdesc(bdp, fep, queue); in fec_enet_txq_submit_tso()
736 bdp, fep); in fec_enet_txq_submit_tso()
738 bdp, index, in fec_enet_txq_submit_tso()
749 bdp = fec_enet_get_nextdesc(bdp, fep, queue); in fec_enet_txq_submit_tso()
756 txq->cur_tx = bdp; in fec_enet_txq_submit_tso()
808 struct bufdesc *bdp; in fec_enet_bd_init() local
815 bdp = rxq->rx_bd_base; in fec_enet_bd_init()
820 if (bdp->cbd_bufaddr) in fec_enet_bd_init()
821 bdp->cbd_sc = BD_ENET_RX_EMPTY; in fec_enet_bd_init()
823 bdp->cbd_sc = 0; in fec_enet_bd_init()
824 bdp = fec_enet_get_nextdesc(bdp, fep, q); in fec_enet_bd_init()
828 bdp = fec_enet_get_prevdesc(bdp, fep, q); in fec_enet_bd_init()
829 bdp->cbd_sc |= BD_SC_WRAP; in fec_enet_bd_init()
837 bdp = txq->tx_bd_base; in fec_enet_bd_init()
838 txq->cur_tx = bdp; in fec_enet_bd_init()
842 bdp->cbd_sc = 0; in fec_enet_bd_init()
847 bdp->cbd_bufaddr = 0; in fec_enet_bd_init()
848 bdp = fec_enet_get_nextdesc(bdp, fep, q); in fec_enet_bd_init()
852 bdp = fec_enet_get_prevdesc(bdp, fep, q); in fec_enet_bd_init()
853 bdp->cbd_sc |= BD_SC_WRAP; in fec_enet_bd_init()
854 txq->dirty_tx = bdp; in fec_enet_bd_init()
1195 struct bufdesc *bdp; in fec_enet_tx_queue() local
1210 bdp = txq->dirty_tx; in fec_enet_tx_queue()
1213 bdp = fec_enet_get_nextdesc(bdp, fep, queue_id); in fec_enet_tx_queue()
1215 while (((status = bdp->cbd_sc) & BD_ENET_TX_READY) == 0) { in fec_enet_tx_queue()
1218 if (bdp == txq->cur_tx) in fec_enet_tx_queue()
1221 index = fec_enet_get_bd_index(txq->tx_bd_base, bdp, fep); in fec_enet_tx_queue()
1225 if (!IS_TSO_HEADER(txq, bdp->cbd_bufaddr)) in fec_enet_tx_queue()
1226 dma_unmap_single(&fep->pdev->dev, bdp->cbd_bufaddr, in fec_enet_tx_queue()
1227 bdp->cbd_datlen, DMA_TO_DEVICE); in fec_enet_tx_queue()
1228 bdp->cbd_bufaddr = 0; in fec_enet_tx_queue()
1230 bdp = fec_enet_get_nextdesc(bdp, fep, queue_id); in fec_enet_tx_queue()
1257 struct bufdesc_ex *ebdp = (struct bufdesc_ex *)bdp; in fec_enet_tx_queue()
1272 txq->dirty_tx = bdp; in fec_enet_tx_queue()
1275 bdp = fec_enet_get_nextdesc(bdp, fep, queue_id); in fec_enet_tx_queue()
1287 if (bdp != txq->cur_tx && in fec_enet_tx_queue()
1306 fec_enet_new_rxbdp(struct net_device *ndev, struct bufdesc *bdp, struct sk_buff *skb) in fec_enet_new_rxbdp() argument
1315 bdp->cbd_bufaddr = dma_map_single(&fep->pdev->dev, skb->data, in fec_enet_new_rxbdp()
1318 if (dma_mapping_error(&fep->pdev->dev, bdp->cbd_bufaddr)) { in fec_enet_new_rxbdp()
1328 struct bufdesc *bdp, u32 length, bool swap) in fec_enet_copybreak() argument
1340 dma_sync_single_for_cpu(&fep->pdev->dev, bdp->cbd_bufaddr, in fec_enet_copybreak()
1362 struct bufdesc *bdp; in fec_enet_rx_queue() local
1385 bdp = rxq->cur_rx; in fec_enet_rx_queue()
1387 while (!((status = bdp->cbd_sc) & BD_ENET_RX_EMPTY)) { in fec_enet_rx_queue()
1429 pkt_len = bdp->cbd_datlen; in fec_enet_rx_queue()
1432 index = fec_enet_get_bd_index(rxq->rx_bd_base, bdp, fep); in fec_enet_rx_queue()
1439 is_copybreak = fec_enet_copybreak(ndev, &skb, bdp, pkt_len - 4, in fec_enet_rx_queue()
1447 dma_unmap_single(&fep->pdev->dev, bdp->cbd_bufaddr, in fec_enet_rx_queue()
1461 ebdp = (struct bufdesc_ex *)bdp; in fec_enet_rx_queue()
1504 dma_sync_single_for_device(&fep->pdev->dev, bdp->cbd_bufaddr, in fec_enet_rx_queue()
1509 fec_enet_new_rxbdp(ndev, bdp, skb_new); in fec_enet_rx_queue()
1518 bdp->cbd_sc = status; in fec_enet_rx_queue()
1521 struct bufdesc_ex *ebdp = (struct bufdesc_ex *)bdp; in fec_enet_rx_queue()
1529 bdp = fec_enet_get_nextdesc(bdp, fep, queue_id); in fec_enet_rx_queue()
1537 rxq->cur_rx = bdp; in fec_enet_rx_queue()
2563 struct bufdesc *bdp; in fec_enet_free_buffers() local
2570 bdp = rxq->rx_bd_base; in fec_enet_free_buffers()
2576 bdp->cbd_bufaddr, in fec_enet_free_buffers()
2581 bdp = fec_enet_get_nextdesc(bdp, fep, q); in fec_enet_free_buffers()
2587 bdp = txq->tx_bd_base; in fec_enet_free_buffers()
2675 struct bufdesc *bdp; in fec_enet_alloc_rxq_buffers() local
2679 bdp = rxq->rx_bd_base; in fec_enet_alloc_rxq_buffers()
2685 if (fec_enet_new_rxbdp(ndev, bdp, skb)) { in fec_enet_alloc_rxq_buffers()
2691 bdp->cbd_sc = BD_ENET_RX_EMPTY; in fec_enet_alloc_rxq_buffers()
2694 struct bufdesc_ex *ebdp = (struct bufdesc_ex *)bdp; in fec_enet_alloc_rxq_buffers()
2698 bdp = fec_enet_get_nextdesc(bdp, fep, queue); in fec_enet_alloc_rxq_buffers()
2702 bdp = fec_enet_get_prevdesc(bdp, fep, queue); in fec_enet_alloc_rxq_buffers()
2703 bdp->cbd_sc |= BD_SC_WRAP; in fec_enet_alloc_rxq_buffers()
2716 struct bufdesc *bdp; in fec_enet_alloc_txq_buffers() local
2720 bdp = txq->tx_bd_base; in fec_enet_alloc_txq_buffers()
2726 bdp->cbd_sc = 0; in fec_enet_alloc_txq_buffers()
2727 bdp->cbd_bufaddr = 0; in fec_enet_alloc_txq_buffers()
2730 struct bufdesc_ex *ebdp = (struct bufdesc_ex *)bdp; in fec_enet_alloc_txq_buffers()
2734 bdp = fec_enet_get_nextdesc(bdp, fep, queue); in fec_enet_alloc_txq_buffers()
2738 bdp = fec_enet_get_prevdesc(bdp, fep, queue); in fec_enet_alloc_txq_buffers()
2739 bdp->cbd_sc |= BD_SC_WRAP; in fec_enet_alloc_txq_buffers()