dpaa_bp 179 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c static struct dpaa_bp *dpaa_bp_array[BM_MAX_NUM_OF_POOLS]; dpaa_bp 476 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c static struct dpaa_bp *dpaa_bpid2pool(int bpid) dpaa_bp 496 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c static void dpaa_bpid2pool_map(int bpid, struct dpaa_bp *dpaa_bp) dpaa_bp 498 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp_array[bpid] = dpaa_bp; dpaa_bp 499 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c refcount_set(&dpaa_bp->refs, 1); dpaa_bp 502 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c static int dpaa_bp_alloc_pool(struct dpaa_bp *dpaa_bp) dpaa_bp 506 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (dpaa_bp->size == 0 || dpaa_bp->config_count == 0) { dpaa_bp 513 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (dpaa_bp->bpid != FSL_DPAA_BPID_INV && dpaa_bp 514 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bpid2pool_use(dpaa_bp->bpid)) dpaa_bp 517 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (dpaa_bp->bpid == FSL_DPAA_BPID_INV) { dpaa_bp 518 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp->pool = bman_new_pool(); dpaa_bp 519 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (!dpaa_bp->pool) { dpaa_bp 525 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp->bpid = (u8)bman_get_bpid(dpaa_bp->pool); dpaa_bp 528 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (dpaa_bp->seed_cb) { dpaa_bp 529 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c err = dpaa_bp->seed_cb(dpaa_bp); dpaa_bp 534 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bpid2pool_map(dpaa_bp->bpid, dpaa_bp); dpaa_bp 540 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c bman_free_pool(dpaa_bp->pool); dpaa_bp 546 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c static void dpaa_bp_drain(struct dpaa_bp *bp) dpaa_bp 576 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c static void dpaa_bp_free(struct dpaa_bp *dpaa_bp) dpaa_bp 578 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c struct dpaa_bp *bp = dpaa_bpid2pool(dpaa_bp->bpid); dpaa_bp 1200 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c static int dpaa_eth_init_rx_port(struct fman_port *port, struct dpaa_bp **bps, dpaa_bp 1255 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c struct dpaa_bp **bps, size_t count, dpaa_bp 1276 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c static int dpaa_bman_release(const struct dpaa_bp *dpaa_bp, dpaa_bp 1281 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c err = bman_release(dpaa_bp->pool, bmb, cnt); dpaa_bp 1283 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (WARN_ON(err) && dpaa_bp->free_buf_cb) dpaa_bp 1285 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp->free_buf_cb(dpaa_bp, &bmb[cnt]); dpaa_bp 1293 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c struct dpaa_bp *dpaa_bp; dpaa_bp 1299 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp = dpaa_bpid2pool(sgt[i].bpid); dpaa_bp 1300 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (!dpaa_bp) dpaa_bp 1314 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bman_release(dpaa_bp, bmb, j); dpaa_bp 1322 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c struct dpaa_bp *dpaa_bp; dpaa_bp 1330 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp = dpaa_bpid2pool(fd->bpid); dpaa_bp 1331 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (!dpaa_bp) dpaa_bp 1338 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dma_unmap_single(dpaa_bp->dev, qm_fd_addr(fd), dpaa_bp->size, dpaa_bp 1343 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c addr = dma_map_single(dpaa_bp->dev, vaddr, dpaa_bp->size, dpaa_bp 1345 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (dma_mapping_error(dpaa_bp->dev, addr)) { dpaa_bp 1346 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dev_err(dpaa_bp->dev, "DMA mapping failed"); dpaa_bp 1352 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bman_release(dpaa_bp, &bmb, 1); dpaa_bp 1489 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c static int dpaa_bp_add_8_bufs(const struct dpaa_bp *dpaa_bp) dpaa_bp 1491 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c struct device *dev = dpaa_bp->dev; dpaa_bp 1498 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c new_buf = netdev_alloc_frag(dpaa_bp->raw_size); dpaa_bp 1501 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp->raw_size); dpaa_bp 1507 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp->size, DMA_FROM_DEVICE); dpaa_bp 1509 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dev_err(dpaa_bp->dev, "DMA map failed"); dpaa_bp 1518 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c return dpaa_bman_release(dpaa_bp, bmb, i); dpaa_bp 1533 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c static int dpaa_bp_seed(struct dpaa_bp *dpaa_bp) dpaa_bp 1539 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c int *count_ptr = per_cpu_ptr(dpaa_bp->percpu_count, i); dpaa_bp 1545 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c for (j = 0; j < dpaa_bp->config_count; j += 8) dpaa_bp 1546 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c *count_ptr += dpaa_bp_add_8_bufs(dpaa_bp); dpaa_bp 1554 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c static int dpaa_eth_refill_bpool(struct dpaa_bp *dpaa_bp, int *countptr) dpaa_bp 1561 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c new_bufs = dpaa_bp_add_8_bufs(dpaa_bp); dpaa_bp 1582 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c struct dpaa_bp *dpaa_bp; dpaa_bp 1587 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp = priv->dpaa_bps[i]; dpaa_bp 1588 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (!dpaa_bp) dpaa_bp 1590 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c countptr = this_cpu_ptr(dpaa_bp->percpu_count); dpaa_bp 1591 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c res = dpaa_eth_refill_bpool(dpaa_bp, countptr); dpaa_bp 1699 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c struct dpaa_bp *dpaa_bp; dpaa_bp 1706 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp = dpaa_bpid2pool(fd->bpid); dpaa_bp 1707 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (!dpaa_bp) dpaa_bp 1710 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c skb = build_skb(vaddr, dpaa_bp->size + dpaa_bp 1739 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c struct dpaa_bp *dpaa_bp; dpaa_bp 1765 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp = dpaa_bpid2pool(sgt[i].bpid); dpaa_bp 1766 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (!dpaa_bp) dpaa_bp 1769 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c count_ptr = this_cpu_ptr(dpaa_bp->percpu_count); dpaa_bp 1770 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dma_unmap_single(dpaa_bp->dev, sg_addr, dpaa_bp->size, dpaa_bp 1773 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c sz = dpaa_bp->size + dpaa_bp 1812 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c frag_len, dpaa_bp->size); dpaa_bp 1830 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp = dpaa_bpid2pool(sgt[i].bpid); dpaa_bp 1831 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (dpaa_bp) { dpaa_bp 1832 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c count_ptr = this_cpu_ptr(dpaa_bp->percpu_count); dpaa_bp 1841 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp = dpaa_bpid2pool(sgt[i].bpid); dpaa_bp 1842 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (dpaa_bp) { dpaa_bp 1843 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c count_ptr = this_cpu_ptr(dpaa_bp->percpu_count); dpaa_bp 2235 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c struct dpaa_bp *dpaa_bp; dpaa_bp 2240 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp = dpaa_bpid2pool(dq->fd.bpid); dpaa_bp 2241 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (!dpaa_bp) dpaa_bp 2267 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c struct dpaa_bp *dpaa_bp; dpaa_bp 2279 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp = dpaa_bpid2pool(dq->fd.bpid); dpaa_bp 2280 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (!dpaa_bp) dpaa_bp 2312 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp = dpaa_bpid2pool(fd->bpid); dpaa_bp 2313 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (!dpaa_bp) dpaa_bp 2316 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dma_unmap_single(dpaa_bp->dev, addr, dpaa_bp->size, DMA_FROM_DEVICE); dpaa_bp 2328 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c count_ptr = this_cpu_ptr(dpaa_bp->percpu_count); dpaa_bp 2674 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c static inline void dpaa_bp_free_pf(const struct dpaa_bp *bp, dpaa_bp 2685 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c static struct dpaa_bp *dpaa_bp_alloc(struct device *dev) dpaa_bp 2687 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c struct dpaa_bp *dpaa_bp; dpaa_bp 2689 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp = devm_kzalloc(dev, sizeof(*dpaa_bp), GFP_KERNEL); dpaa_bp 2690 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (!dpaa_bp) dpaa_bp 2693 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp->bpid = FSL_DPAA_BPID_INV; dpaa_bp 2694 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp->percpu_count = devm_alloc_percpu(dev, *dpaa_bp->percpu_count); dpaa_bp 2695 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c if (!dpaa_bp->percpu_count) dpaa_bp 2698 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp->config_count = FSL_DPAA_ETH_MAX_BUF_COUNT; dpaa_bp 2700 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp->seed_cb = dpaa_bp_seed; dpaa_bp 2701 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c dpaa_bp->free_buf_cb = dpaa_bp_free_pf; dpaa_bp 2703 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c return dpaa_bp; dpaa_bp 2778 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c struct dpaa_bp *dpaa_bps[DPAA_BPS_NUM] = {NULL}; dpaa_bp 100 drivers/net/ethernet/freescale/dpaa/dpaa_eth.h int (*seed_cb)(struct dpaa_bp *); dpaa_bp 102 drivers/net/ethernet/freescale/dpaa/dpaa_eth.h void (*free_buf_cb)(const struct dpaa_bp *, struct bm_buffer *); dpaa_bp 149 drivers/net/ethernet/freescale/dpaa/dpaa_eth.h struct dpaa_bp *dpaa_bps[DPAA_BPS_NUM]; dpaa_bp 279 drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c struct dpaa_bp *dpaa_bp; dpaa_bp 296 drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c dpaa_bp = priv->dpaa_bps[j]; dpaa_bp 297 drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c if (!dpaa_bp->percpu_count) dpaa_bp 299 drivers/net/ethernet/freescale/dpaa/dpaa_ethtool.c bp_count[j] = *(per_cpu_ptr(dpaa_bp->percpu_count, i));