Lines Matching refs:bm_pool

3365 				struct mvpp2_bm_pool *bm_pool, int size)  in mvpp2_bm_pool_create()  argument
3371 bm_pool->virt_addr = dma_alloc_coherent(&pdev->dev, size_bytes, in mvpp2_bm_pool_create()
3372 &bm_pool->phys_addr, in mvpp2_bm_pool_create()
3374 if (!bm_pool->virt_addr) in mvpp2_bm_pool_create()
3377 if (!IS_ALIGNED((u32)bm_pool->virt_addr, MVPP2_BM_POOL_PTR_ALIGN)) { in mvpp2_bm_pool_create()
3378 dma_free_coherent(&pdev->dev, size_bytes, bm_pool->virt_addr, in mvpp2_bm_pool_create()
3379 bm_pool->phys_addr); in mvpp2_bm_pool_create()
3381 bm_pool->id, MVPP2_BM_POOL_PTR_ALIGN); in mvpp2_bm_pool_create()
3385 mvpp2_write(priv, MVPP2_BM_POOL_BASE_REG(bm_pool->id), in mvpp2_bm_pool_create()
3386 bm_pool->phys_addr); in mvpp2_bm_pool_create()
3387 mvpp2_write(priv, MVPP2_BM_POOL_SIZE_REG(bm_pool->id), size); in mvpp2_bm_pool_create()
3389 val = mvpp2_read(priv, MVPP2_BM_POOL_CTRL_REG(bm_pool->id)); in mvpp2_bm_pool_create()
3391 mvpp2_write(priv, MVPP2_BM_POOL_CTRL_REG(bm_pool->id), val); in mvpp2_bm_pool_create()
3393 bm_pool->type = MVPP2_BM_FREE; in mvpp2_bm_pool_create()
3394 bm_pool->size = size; in mvpp2_bm_pool_create()
3395 bm_pool->pkt_size = 0; in mvpp2_bm_pool_create()
3396 bm_pool->buf_num = 0; in mvpp2_bm_pool_create()
3397 atomic_set(&bm_pool->in_use, 0); in mvpp2_bm_pool_create()
3404 struct mvpp2_bm_pool *bm_pool, in mvpp2_bm_pool_bufsize_set() argument
3409 bm_pool->buf_size = buf_size; in mvpp2_bm_pool_bufsize_set()
3412 mvpp2_write(priv, MVPP2_POOL_BUF_SIZE_REG(bm_pool->id), val); in mvpp2_bm_pool_bufsize_set()
3417 struct mvpp2_bm_pool *bm_pool) in mvpp2_bm_bufs_free() argument
3421 for (i = 0; i < bm_pool->buf_num; i++) { in mvpp2_bm_bufs_free()
3427 MVPP2_BM_PHY_ALLOC_REG(bm_pool->id)); in mvpp2_bm_bufs_free()
3431 bm_pool->buf_size, DMA_FROM_DEVICE); in mvpp2_bm_bufs_free()
3439 bm_pool->buf_num -= i; in mvpp2_bm_bufs_free()
3445 struct mvpp2_bm_pool *bm_pool) in mvpp2_bm_pool_destroy() argument
3449 mvpp2_bm_bufs_free(&pdev->dev, priv, bm_pool); in mvpp2_bm_pool_destroy()
3450 if (bm_pool->buf_num) { in mvpp2_bm_pool_destroy()
3451 WARN(1, "cannot free all buffers in pool %d\n", bm_pool->id); in mvpp2_bm_pool_destroy()
3455 val = mvpp2_read(priv, MVPP2_BM_POOL_CTRL_REG(bm_pool->id)); in mvpp2_bm_pool_destroy()
3457 mvpp2_write(priv, MVPP2_BM_POOL_CTRL_REG(bm_pool->id), val); in mvpp2_bm_pool_destroy()
3459 dma_free_coherent(&pdev->dev, sizeof(u32) * bm_pool->size, in mvpp2_bm_pool_destroy()
3460 bm_pool->virt_addr, in mvpp2_bm_pool_destroy()
3461 bm_pool->phys_addr); in mvpp2_bm_pool_destroy()
3469 struct mvpp2_bm_pool *bm_pool; in mvpp2_bm_pools_init() local
3474 bm_pool = &priv->bm_pools[i]; in mvpp2_bm_pools_init()
3475 bm_pool->id = i; in mvpp2_bm_pools_init()
3476 err = mvpp2_bm_pool_create(pdev, priv, bm_pool, size); in mvpp2_bm_pools_init()
3479 mvpp2_bm_pool_bufsize_set(priv, bm_pool, 0); in mvpp2_bm_pools_init()
3551 struct mvpp2_bm_pool *bm_pool, in mvpp2_skb_alloc() argument
3558 skb = __dev_alloc_skb(bm_pool->pkt_size, gfp_mask); in mvpp2_skb_alloc()
3563 MVPP2_RX_BUF_SIZE(bm_pool->pkt_size), in mvpp2_skb_alloc()
3625 struct mvpp2_bm_pool *bm_pool, int buf_num) in mvpp2_bm_bufs_add() argument
3632 buf_size = MVPP2_RX_BUF_SIZE(bm_pool->pkt_size); in mvpp2_bm_bufs_add()
3636 (buf_num + bm_pool->buf_num > bm_pool->size)) { in mvpp2_bm_bufs_add()
3639 buf_num, bm_pool->id); in mvpp2_bm_bufs_add()
3643 bm = mvpp2_bm_cookie_pool_set(0, bm_pool->id); in mvpp2_bm_bufs_add()
3645 skb = mvpp2_skb_alloc(port, bm_pool, &phys_addr, GFP_KERNEL); in mvpp2_bm_bufs_add()
3653 bm_pool->buf_num += i; in mvpp2_bm_bufs_add()
3654 bm_pool->in_use_thresh = bm_pool->buf_num / 4; in mvpp2_bm_bufs_add()
3658 bm_pool->type == MVPP2_BM_SWF_SHORT ? "short" : " long", in mvpp2_bm_bufs_add()
3659 bm_pool->id, bm_pool->pkt_size, buf_size, total_size); in mvpp2_bm_bufs_add()
3663 bm_pool->type == MVPP2_BM_SWF_SHORT ? "short" : " long", in mvpp2_bm_bufs_add()
3664 bm_pool->id, i, buf_num); in mvpp2_bm_bufs_add()
5009 struct mvpp2_bm_pool *bm_pool, in mvpp2_rx_refill() argument
5016 (atomic_read(&bm_pool->in_use) < bm_pool->in_use_thresh)) in mvpp2_rx_refill()
5020 skb = mvpp2_skb_alloc(port, bm_pool, &phys_addr, GFP_ATOMIC); in mvpp2_rx_refill()
5025 atomic_dec(&bm_pool->in_use); in mvpp2_rx_refill()
5114 struct mvpp2_bm_pool *bm_pool; in mvpp2_rx() local
5127 bm_pool = &port->priv->bm_pools[pool]; in mvpp2_rx()
5151 err = mvpp2_rx_refill(port, bm_pool, bm, 0); in mvpp2_rx()
5158 bm_pool->buf_size, DMA_FROM_DEVICE); in mvpp2_rx()
5162 atomic_inc(&bm_pool->in_use); in mvpp2_rx()
6500 struct mvpp2_bm_pool *bm_pool = &priv->bm_pools[i]; in mvpp2_remove() local
6502 mvpp2_bm_pool_destroy(pdev, priv, bm_pool); in mvpp2_remove()