Home
last modified time | relevance | path

Searched full:pbl (Results 1 – 25 of 149) sorted by relevance

123456

/linux/drivers/infiniband/hw/bng_re/
H A Dbng_res.c39 static void bng_free_pbl(struct bng_re_res *res, struct bng_re_pbl *pbl) in bng_free_pbl() argument
44 for (i = 0; i < pbl->pg_count; i++) { in bng_free_pbl()
45 if (pbl->pg_arr[i]) in bng_free_pbl()
46 dma_free_coherent(&pdev->dev, pbl->pg_size, in bng_free_pbl()
48 pbl->pg_arr[i] & in bng_free_pbl()
50 pbl->pg_map_arr[i]); in bng_free_pbl()
53 "PBL free pg_arr[%d] empty?!\n", i); in bng_free_pbl()
54 pbl->pg_arr[i] = NULL; in bng_free_pbl()
57 vfree(pbl->pg_arr); in bng_free_pbl()
58 pbl->pg_arr = NULL; in bng_free_pbl()
[all …]
H A Dbng_res.h112 struct bng_re_pbl pbl[BNG_PBL_LVL_MAX + 1]; member
115 /* PBL entries */
117 /* PBL dma_addr */
/linux/drivers/infiniband/hw/efa/
H A Defa_verbs.c1364 static int pbl_chunk_list_create(struct efa_dev *dev, struct pbl_context *pbl) in pbl_chunk_list_create() argument
1366 struct pbl_chunk_list *chunk_list = &pbl->phys.indirect.chunk_list; in pbl_chunk_list_create()
1367 int page_cnt = pbl->phys.indirect.pbl_buf_size_in_pages; in pbl_chunk_list_create()
1368 struct scatterlist *pages_sgl = pbl->phys.indirect.sgl; in pbl_chunk_list_create()
1370 int sg_dma_cnt = pbl->phys.indirect.sg_dma_cnt; in pbl_chunk_list_create()
1464 static void pbl_chunk_list_destroy(struct efa_dev *dev, struct pbl_context *pbl) in pbl_chunk_list_destroy() argument
1466 struct pbl_chunk_list *chunk_list = &pbl->phys.indirect.chunk_list; in pbl_chunk_list_destroy()
1478 /* initialize pbl continuous mode: map pbl buffer to a dma address. */
1480 struct pbl_context *pbl) in pbl_continuous_initialize() argument
1484 dma_addr = dma_map_single(&dev->pdev->dev, pbl->pbl_buf, in pbl_continuous_initialize()
[all …]
/linux/include/linux/qed/
H A Dqed_chain.h84 /* Fastpath portions of the PBL [if exists] */
89 * in the pbl table.
97 } pbl; member
126 /* Base address of a pre-allocated buffer for pbl */
311 *p_next_elem = p_chain->pbl.pp_addr_tbl[page_index].virt_addr; in qed_chain_advance_page()
377 p_prod_page_idx = &p_chain->pbl.c.u16.prod_page_idx; in qed_chain_produce()
386 p_prod_page_idx = &p_chain->pbl.c.u32.prod_page_idx; in qed_chain_produce()
448 p_cons_page_idx = &p_chain->pbl.c.u16.cons_page_idx; in qed_chain_consume()
457 p_cons_page_idx = &p_chain->pbl.c.u32.cons_page_idx; in qed_chain_consume()
501 p_chain->pbl.c.u16.prod_page_idx = (u16)reset_val; in qed_chain_reset()
[all …]
/linux/drivers/infiniband/sw/siw/
H A Dsiw_mem.c112 siw_dbg_mem(mem, "free mem, pbl: %s\n", mem->is_pbl ? "y" : "n"); in siw_free_mem()
118 kfree(mem->pbl); in siw_free_mem()
288 * Gets physical address backed by PBL element. Address is referenced
291 * current PBL index for later resume at same element.
293 dma_addr_t siw_pbl_get_buffer(struct siw_pbl *pbl, u64 off, int *len, int *idx) in siw_pbl_get_buffer() argument
297 while (i < pbl->num_buf) { in siw_pbl_get_buffer()
298 struct siw_pble *pble = &pbl->pbe[i]; in siw_pbl_get_buffer()
319 struct siw_pbl *pbl; in siw_pbl_alloc() local
324 pbl = kzalloc(struct_size(pbl, pbe, num_buf), GFP_KERNEL); in siw_pbl_alloc()
325 if (!pbl) in siw_pbl_alloc()
[all …]
H A Dsiw.h26 #define SIW_MAX_SGE_PBL 256 /* max num sge's for PBL */
130 unsigned long pbl_off; /* Total offset from start of PBL */
150 u8 is_pbl; /* PBL or user space mem */
155 struct siw_pbl *pbl; member
327 unsigned int pbl_idx; /* Index into current PBL */
411 int pbl_idx; /* Index into current PBL */
/linux/drivers/infiniband/hw/cxgb4/
H A Dresource.c260 * PBL Memory Manager. Uses Linux generic allocator.
263 #define MIN_PBL_SHIFT 8 /* 256B == min PBL size (32 entries) */
271 rdev->stats.pbl.cur += roundup(size, 1 << MIN_PBL_SHIFT); in c4iw_pblpool_alloc()
272 if (rdev->stats.pbl.cur > rdev->stats.pbl.max) in c4iw_pblpool_alloc()
273 rdev->stats.pbl.max = rdev->stats.pbl.cur; in c4iw_pblpool_alloc()
276 rdev->stats.pbl.fail++; in c4iw_pblpool_alloc()
294 rdev->stats.pbl.cur -= roundup(size, 1 << MIN_PBL_SHIFT); in c4iw_pblpool_free()
308 pbl_start = rdev->lldi.vr->pbl.start; in c4iw_pblpool_create()
309 pbl_chunk = rdev->lldi.vr->pbl.size; in c4iw_pblpool_create()
315 pr_debug("failed to add PBL chunk (%x/%x)\n", in c4iw_pblpool_create()
[all …]
/linux/drivers/scsi/bnx2fc/
H A Dbnx2fc_tgt.c665 u32 *pbl; in bnx2fc_alloc_session_resc() local
693 /* Allocate and map RQ and RQ PBL */ in bnx2fc_alloc_session_resc()
713 printk(KERN_ERR PFX "unable to allocate RQ PBL %d\n", in bnx2fc_alloc_session_resc()
720 pbl = (u32 *)tgt->rq_pbl; in bnx2fc_alloc_session_resc()
723 *pbl = (u32)page; in bnx2fc_alloc_session_resc()
724 pbl++; in bnx2fc_alloc_session_resc()
725 *pbl = (u32)((u64)page >> 32); in bnx2fc_alloc_session_resc()
726 pbl++; in bnx2fc_alloc_session_resc()
744 /* Allocate and map CONFQ & CONFQ PBL */ in bnx2fc_alloc_session_resc()
767 printk(KERN_ERR PFX "unable to allocate CONFQ PBL %d\n", in bnx2fc_alloc_session_resc()
[all …]
H A Dbnx2fc_hwi.c1991 u32 *pbl; in bnx2fc_free_hash_table() local
1995 pbl = hba->hash_tbl_pbl; in bnx2fc_free_hash_table()
1996 if (pbl) { in bnx2fc_free_hash_table()
2001 dma_address = le32_to_cpu(*pbl); in bnx2fc_free_hash_table()
2002 ++pbl; in bnx2fc_free_hash_table()
2003 dma_address += ((u64)le32_to_cpu(*pbl)) << 32; in bnx2fc_free_hash_table()
2004 ++pbl; in bnx2fc_free_hash_table()
2032 u32 *pbl; in bnx2fc_allocate_hash_table() local
2069 printk(KERN_ERR PFX "hash table pbl alloc failed\n"); in bnx2fc_allocate_hash_table()
2073 pbl = hba->hash_tbl_pbl; in bnx2fc_allocate_hash_table()
[all …]
/linux/drivers/scsi/qedi/
H A Dqedi_main.c1541 struct scsi_bd *pbl; in qedi_alloc_bdq() local
1570 QEDI_ERR(&qedi->dbg_ctx, "Could not allocate BDQ PBL.\n"); in qedi_alloc_bdq()
1575 * Populate BDQ PBL with physical and virtual address of individual in qedi_alloc_bdq()
1578 pbl = (struct scsi_bd *)qedi->bdq_pbl; in qedi_alloc_bdq()
1580 pbl->address.hi = in qedi_alloc_bdq()
1582 pbl->address.lo = in qedi_alloc_bdq()
1585 "pbl [0x%p] pbl->address hi [0x%llx] lo [0x%llx], idx [%d]\n", in qedi_alloc_bdq()
1586 pbl, pbl->address.hi, pbl->address.lo, i); in qedi_alloc_bdq()
1587 pbl->opaque.iscsi_opaque.reserved_zero[0] = 0; in qedi_alloc_bdq()
1588 pbl->opaque.iscsi_opaque.reserved_zero[1] = 0; in qedi_alloc_bdq()
[all …]
H A Dqedi.h150 u64 hw_p_cq; /* Completion queue PBL */
151 u64 hw_p_rq; /* Request queue PBL */
152 u64 hw_p_cmdq; /* Command queue PBL */
/linux/drivers/net/ethernet/qlogic/qed/
H A Dqed_chain.c111 if (!chain->pbl.pp_addr_tbl) in qed_chain_free_pbl()
115 entry = chain->pbl.pp_addr_tbl + i; in qed_chain_free_pbl()
128 vfree(chain->pbl.pp_addr_tbl); in qed_chain_free_pbl()
129 chain->pbl.pp_addr_tbl = NULL; in qed_chain_free_pbl()
269 chain->pbl.pp_addr_tbl = addr_tbl; in qed_chain_alloc_pbl()
300 /* Fill the PBL table with the physical address of the page */ in qed_chain_alloc_pbl()
H A Dqed_l2.h407 * @cqe_pbl_addr: PBL address.
408 * @cqe_pbl_size: PBL size.
425 * @pbl_addr: PBL address.
426 * @pbl_size: PBL size.
/linux/drivers/net/ethernet/samsung/sxgbe/
H A Dsxgbe_dma.c44 int fix_burst, int pbl, dma_addr_t dma_tx, in sxgbe_dma_channel_init() argument
51 /* set the pbl */ in sxgbe_dma_channel_init()
55 /* program the TX pbl */ in sxgbe_dma_channel_init()
57 reg_val |= (pbl << SXGBE_DMA_TXPBL_LSHIFT); in sxgbe_dma_channel_init()
59 /* program the RX pbl */ in sxgbe_dma_channel_init()
61 reg_val |= (pbl << SXGBE_DMA_RXPBL_LSHIFT); in sxgbe_dma_channel_init()
/linux/drivers/infiniband/hw/bnxt_re/
H A Dqplib_fp.c650 struct bnxt_qplib_pbl *pbl; in bnxt_qplib_create_srq() local
672 pbl = &srq->hwq.pbl[PBL_LVL_0]; in bnxt_qplib_create_srq()
678 req.pbl = cpu_to_le64(pbl->pg_map_arr[0]); in bnxt_qplib_create_srq()
825 struct bnxt_qplib_pbl *pbl; in bnxt_qplib_create_qp1() local
855 pbl = &sq->hwq.pbl[PBL_LVL_0]; in bnxt_qplib_create_qp1()
856 req.sq_pbl = cpu_to_le64(pbl->pg_map_arr[0]); in bnxt_qplib_create_qp1()
881 pbl = &rq->hwq.pbl[PBL_LVL_0]; in bnxt_qplib_create_qp1()
882 req.rq_pbl = cpu_to_le64(pbl->pg_map_arr[0]); in bnxt_qplib_create_qp1()
970 struct bnxt_qplib_pbl *pbl; in bnxt_qplib_create_qp() local
1032 pbl = &sq->hwq.pbl[PBL_LVL_0]; in bnxt_qplib_create_qp()
[all …]
/linux/drivers/infiniband/hw/qedr/
H A Dqedr.h75 struct qed_chain pbl; member
291 struct qed_chain pbl; member
320 struct qed_chain pbl; member
342 qed_chain_get_capacity(p_info->pbl) \
348 struct qed_chain pbl; member
H A Dmain.c316 dev->ops->common->chain_free(dev->cdev, &dev->cnq_array[i].pbl); in qedr_free_resources()
382 rc = dev->ops->common->chain_alloc(dev->cdev, &cnq->pbl, in qedr_alloc_resources()
395 i, qed_chain_get_cons_idx(&cnq->pbl)); in qedr_alloc_resources()
403 dev->ops->common->chain_free(dev->cdev, &dev->cnq_array[i].pbl); in qedr_alloc_resources()
447 sw_comp_cons = qed_chain_get_cons_idx(&cnq->pbl); in qedr_irq_handler()
453 cq_handle = (struct regpair *)qed_chain_consume(&cnq->pbl); in qedr_irq_handler()
487 sw_comp_cons = qed_chain_get_cons_idx(&cnq->pbl); in qedr_irq_handler()
802 page_cnt = qed_chain_get_page_cnt(&dev->cnq_array[i].pbl); in qedr_init_hw()
805 p_phys_table = qed_chain_get_pbl_phys(&dev->cnq_array[i].pbl); in qedr_init_hw()
/linux/Documentation/devicetree/bindings/net/
H A Dstm32-dwmac.yaml184 snps,pbl = <2>;
201 snps,pbl = <8>;
217 snps,pbl = <8>;
H A Dsamsung-sxgbe.txt15 - samsung,pbl: Integer, Programmable Burst Length.
47 samsung,pbl = <0x08>
/linux/drivers/net/ethernet/stmicro/stmmac/
H A Ddwmac1000_dma.c53 int txpbl = dma_cfg->txpbl ?: dma_cfg->pbl; in dwmac1000_dma_axi()
54 int rxpbl = dma_cfg->rxpbl ?: dma_cfg->pbl; in dwmac1000_dma_axi()
59 /* Set the DMA PBL (Programmable Burst Length) mode. in dwmac1000_dma_axi()
62 * post 3.5 mode bit acts as 8*PBL. in dwmac1000_dma_axi()
/linux/kernel/irq/
H A Ddebugfs.c30 seq_printf(m, "affinity: %*pbl\n", cpumask_pr_args(msk)); in irq_debug_show_masks()
33 seq_printf(m, "effectiv: %*pbl\n", cpumask_pr_args(msk)); in irq_debug_show_masks()
37 seq_printf(m, "pending: %*pbl\n", cpumask_pr_args(msk)); in irq_debug_show_masks()
/linux/fs/btrfs/
H A Dsubpage.c682 "dumping bitmap start=%llu len=%u folio=%llu " #name "_bitmap=%*pbl", \
804 "start=%llu len=%u page=%llu, bitmaps uptodate=%*pbl dirty=%*pbl locked=%*pbl writeback=%*pbl ordered=%*pbl checked=%*pbl", in btrfs_subpage_dump_bitmap()
/linux/drivers/net/ethernet/tehuti/
H A Dtehuti.c1461 * It makes dma mappings for skb's data blocks and writes them to PBL of
1472 struct pbl *pbl = &txdd->pbl[0]; in bdx_tx_map_skb() local
1479 pbl->len = CPU_CHIP_SWAP32(db->wptr->len); in bdx_tx_map_skb()
1480 pbl->pa_lo = CPU_CHIP_SWAP32(L32_64(db->wptr->addr.dma)); in bdx_tx_map_skb()
1481 pbl->pa_hi = CPU_CHIP_SWAP32(H32_64(db->wptr->addr.dma)); in bdx_tx_map_skb()
1482 DBG("=== pbl len: 0x%x ================\n", pbl->len); in bdx_tx_map_skb()
1483 DBG("=== pbl pa_lo: 0x%x ================\n", pbl->pa_lo); in bdx_tx_map_skb()
1484 DBG("=== pbl pa_hi: 0x%x ================\n", pbl->pa_hi); in bdx_tx_map_skb()
1496 pbl++; in bdx_tx_map_skb()
1497 pbl->len = CPU_CHIP_SWAP32(db->wptr->len); in bdx_tx_map_skb()
[all …]
H A Dtn40.c541 static void tn40_pbl_set(struct tn40_pbl *pbl, dma_addr_t dma, int len) in tn40_pbl_set() argument
543 pbl->len = cpu_to_le32(len); in tn40_pbl_set()
544 pbl->pa_lo = cpu_to_le32(lower_32_bits(dma)); in tn40_pbl_set()
545 pbl->pa_hi = cpu_to_le32(upper_32_bits(dma)); in tn40_pbl_set()
567 * PBL of a new tx descriptor. It also stores them in the tx db, so they could
579 struct tn40_pbl *pbl = &txdd->pbl[0]; in tn40_tx_map_skb() local
602 tn40_pbl_set(pbl++, db->wptr->addr.dma, db->wptr->len); in tn40_tx_map_skb()
622 tn40_pbl_set(pbl++, db->wptr->addr.dma, db->wptr->len); in tn40_tx_map_skb()
763 struct tn40_pbl *pbl = &txdd->pbl[++nr_frags]; in tn40_start_xmit() local
771 pbl->len = cpu_to_le32(TN40_SHORT_PACKET_SIZE - pkt_len); in tn40_start_xmit()
[all …]
/linux/lib/tests/
H A Dprintf_kunit.c546 test("1-20,60000-60014", "%*pbl", nbits, bits); in large_bitmap()
559 test("|", "%20pbl|%*pbl", bits, 20, bits); in bitmap()
564 test("2-3,5,7,11,13,17,19|2-3,5,7,11,13,17,19", "%20pbl|%*pbl", bits, 20, bits); in bitmap()
568 test("0-19|0-19", "%20pbl|%*pbl", bits, 20, bits); in bitmap()

123456