• Home
  • Raw
  • Download

Lines Matching refs:buf_pool

20 static void xgene_enet_init_bufpool(struct xgene_enet_desc_ring *buf_pool)  in xgene_enet_init_bufpool()  argument
25 if (!buf_pool) in xgene_enet_init_bufpool()
28 for (i = 0; i < buf_pool->slots; i++) { in xgene_enet_init_bufpool()
29 raw_desc = &buf_pool->raw_desc16[i]; in xgene_enet_init_bufpool()
33 SET_VAL(FPQNUM, buf_pool->dst_ring_num) | in xgene_enet_init_bufpool()
67 static int xgene_enet_refill_pagepool(struct xgene_enet_desc_ring *buf_pool, in xgene_enet_refill_pagepool() argument
80 if (unlikely(!buf_pool)) in xgene_enet_refill_pagepool()
83 ndev = buf_pool->ndev; in xgene_enet_refill_pagepool()
86 slots = buf_pool->slots - 1; in xgene_enet_refill_pagepool()
87 tail = buf_pool->tail; in xgene_enet_refill_pagepool()
90 raw_desc = &buf_pool->raw_desc16[tail]; in xgene_enet_refill_pagepool()
108 buf_pool->frag_page[tail] = page; in xgene_enet_refill_pagepool()
112 pdata->ring_ops->wr_cmd(buf_pool, nbuf); in xgene_enet_refill_pagepool()
113 buf_pool->tail = tail; in xgene_enet_refill_pagepool()
118 static int xgene_enet_refill_bufpool(struct xgene_enet_desc_ring *buf_pool, in xgene_enet_refill_bufpool() argument
127 u32 tail = buf_pool->tail; in xgene_enet_refill_bufpool()
128 u32 slots = buf_pool->slots - 1; in xgene_enet_refill_bufpool()
132 ndev = buf_pool->ndev; in xgene_enet_refill_bufpool()
133 dev = ndev_to_dev(buf_pool->ndev); in xgene_enet_refill_bufpool()
140 raw_desc = &buf_pool->raw_desc16[tail]; in xgene_enet_refill_bufpool()
153 buf_pool->rx_skb[tail] = skb; in xgene_enet_refill_bufpool()
161 pdata->ring_ops->wr_cmd(buf_pool, nbuf); in xgene_enet_refill_bufpool()
162 buf_pool->tail = tail; in xgene_enet_refill_bufpool()
174 static void xgene_enet_delete_bufpool(struct xgene_enet_desc_ring *buf_pool) in xgene_enet_delete_bufpool() argument
176 struct device *dev = ndev_to_dev(buf_pool->ndev); in xgene_enet_delete_bufpool()
182 for (i = 0; i < buf_pool->slots; i++) { in xgene_enet_delete_bufpool()
183 if (buf_pool->rx_skb[i]) { in xgene_enet_delete_bufpool()
184 dev_kfree_skb_any(buf_pool->rx_skb[i]); in xgene_enet_delete_bufpool()
186 raw_desc = &buf_pool->raw_desc16[i]; in xgene_enet_delete_bufpool()
194 static void xgene_enet_delete_pagepool(struct xgene_enet_desc_ring *buf_pool) in xgene_enet_delete_pagepool() argument
196 struct device *dev = ndev_to_dev(buf_pool->ndev); in xgene_enet_delete_pagepool()
202 for (i = 0; i < buf_pool->slots; i++) { in xgene_enet_delete_pagepool()
203 page = buf_pool->frag_page[i]; in xgene_enet_delete_pagepool()
205 dma_addr = buf_pool->frag_dma_addr[i]; in xgene_enet_delete_pagepool()
608 static void xgene_enet_free_pagepool(struct xgene_enet_desc_ring *buf_pool, in xgene_enet_free_pagepool() argument
620 if (!buf_pool || !raw_desc || !exp_desc || in xgene_enet_free_pagepool()
624 dev = ndev_to_dev(buf_pool->ndev); in xgene_enet_free_pagepool()
625 slots = buf_pool->slots - 1; in xgene_enet_free_pagepool()
626 head = buf_pool->head; in xgene_enet_free_pagepool()
636 page = buf_pool->frag_page[head]; in xgene_enet_free_pagepool()
639 buf_pool->frag_page[head] = NULL; in xgene_enet_free_pagepool()
642 buf_pool->head = head; in xgene_enet_free_pagepool()
672 struct xgene_enet_desc_ring *buf_pool, *page_pool; in xgene_enet_rx_frame() local
689 buf_pool = rx_ring->buf_pool; in xgene_enet_rx_frame()
695 skb = buf_pool->rx_skb[skb_index]; in xgene_enet_rx_frame()
696 buf_pool->rx_skb[skb_index] = NULL; in xgene_enet_rx_frame()
771 ret = xgene_enet_refill_bufpool(buf_pool, NUM_BUFPOOL); in xgene_enet_rx_frame()
1062 struct xgene_enet_desc_ring *buf_pool, *page_pool; in xgene_enet_delete_desc_rings() local
1088 buf_pool = ring->buf_pool; in xgene_enet_delete_desc_rings()
1089 xgene_enet_delete_bufpool(buf_pool); in xgene_enet_delete_desc_rings()
1090 xgene_enet_delete_ring(buf_pool); in xgene_enet_delete_desc_rings()
1091 pdata->port_ops->clear(pdata, buf_pool); in xgene_enet_delete_desc_rings()
1172 if (ring->buf_pool) { in xgene_enet_free_desc_rings()
1173 if (ring->buf_pool->rx_skb) in xgene_enet_free_desc_rings()
1174 devm_kfree(dev, ring->buf_pool->rx_skb); in xgene_enet_free_desc_rings()
1176 xgene_enet_free_desc_ring(ring->buf_pool); in xgene_enet_free_desc_rings()
1310 struct xgene_enet_desc_ring *buf_pool = NULL; in xgene_enet_create_desc_rings() local
1339 buf_pool = xgene_enet_create_desc_ring(ndev, ring_num++, in xgene_enet_create_desc_rings()
1342 if (!buf_pool) { in xgene_enet_create_desc_rings()
1350 buf_pool->rx_skb = devm_kcalloc(dev, buf_pool->slots, in xgene_enet_create_desc_rings()
1353 if (!buf_pool->rx_skb) { in xgene_enet_create_desc_rings()
1358 buf_pool->dst_ring_num = xgene_enet_dst_ring_num(buf_pool); in xgene_enet_create_desc_rings()
1359 rx_ring->buf_pool = buf_pool; in xgene_enet_create_desc_rings()
1816 struct xgene_enet_desc_ring *buf_pool; in xgene_enet_init_hw() local
1833 buf_pool = pdata->rx_ring[i]->buf_pool; in xgene_enet_init_hw()
1834 xgene_enet_init_bufpool(buf_pool); in xgene_enet_init_hw()
1839 ret = xgene_enet_refill_bufpool(buf_pool, count); in xgene_enet_init_hw()
1850 buf_pool = pdata->rx_ring[0]->buf_pool; in xgene_enet_init_hw()
1868 buf_pool = pdata->rx_ring[0]->buf_pool; in xgene_enet_init_hw()
1872 buf_pool->id, ring_id); in xgene_enet_init_hw()