Lines Matching full:pbl
213 struct ecore_chain *pbl; in qlnxr_create_srq() local
217 pbl = &hw_srq->pbl; in qlnxr_create_srq()
219 page_cnt = ecore_chain_get_page_cnt(pbl); in qlnxr_create_srq()
220 pbl_base_addr = ecore_chain_get_pbl_phys(pbl); in qlnxr_create_srq()
222 page_size = pbl->elem_per_page << 4; in qlnxr_create_srq()
390 struct ecore_chain *pbl; in qlnxr_post_srq_recv() local
403 pbl = &srq->hw_srq.pbl; in qlnxr_post_srq_recv()
419 hdr = ecore_chain_produce(pbl); in qlnxr_post_srq_recv()
424 /* PBL is maintained in case of WR granularity. in qlnxr_post_srq_recv()
436 ecore_chain_produce(pbl); in qlnxr_post_srq_recv()
462 ecore_chain_get_elem_left(pbl)); in qlnxr_post_srq_recv()
1153 struct qlnxr_pbl *pbl) in qlnxr_free_pbl() argument
1163 if (!pbl[i].va) in qlnxr_free_pbl()
1165 qlnx_dma_free_coherent(&dev->ha->cdev, pbl[i].va, pbl[i].pa, in qlnxr_free_pbl()
1168 kfree(pbl); in qlnxr_free_pbl()
1206 QL_DPRINT11(ha, "Failed to allocate pbl#%d\n", i); in qlnxr_alloc_pbl_tbl()
1214 /* Two-Layer PBLs, if we have more than one pbl we need to initialize in qlnxr_alloc_pbl_tbl()
1248 QL_DPRINT11(ha, "prepare pbl table: too many pages %d\n", in qlnxr_prepare_pbl_tbl()
1253 /* calculate required pbl page size */ in qlnxr_prepare_pbl_tbl()
1268 /* One layered PBL */ in qlnxr_prepare_pbl_tbl()
1279 QL_DPRINT12(ha, "prepare pbl table: num_pbes=%d, num_pbls=%d pbl_size=%d\n", in qlnxr_prepare_pbl_tbl()
1287 struct qlnxr_pbl *pbl, struct qlnxr_pbl_info *pbl_info) in qlnxr_populate_pbls() argument
1310 /* If we have a two layered pbl, the first pbl points to the rest in qlnxr_populate_pbls()
1311 * of the pbls and the first entry lays on the second pbl in the table in qlnxr_populate_pbls()
1314 pbl_tbl = &pbl[1]; in qlnxr_populate_pbls()
1316 pbl_tbl = pbl; in qlnxr_populate_pbls()
1341 "Populate pbl table:" in qlnxr_populate_pbls()
1354 /* if the given pbl is full storing the pbes, in qlnxr_populate_pbls()
1355 * move to next pbl. in qlnxr_populate_pbls()
1372 struct qlnxr_pbl *pbl, *tmp; in free_mr_info() local
1386 list_for_each_entry_safe(pbl, tmp, &info->free_pbl_list, list_entry) { in free_mr_info()
1387 list_del(&pbl->list_entry); in free_mr_info()
1388 qlnxr_free_pbl(dev, &info->pbl_info, pbl); in free_mr_info()
1433 QL_DPRINT11(ha, "Extra PBL is not allocated\n"); in qlnxr_init_mr_info()
1619 cq->latest_cqe = ecore_chain_consume(&cq->pbl); in consume_cqe()
1679 0 /* SQ and RQ don't support dual layer pbl. in qlnxr_init_user_queue()
1795 &cq->pbl, NULL); in qlnxr_create_cq()
1800 page_cnt = ecore_chain_get_page_cnt(&cq->pbl); in qlnxr_create_cq()
1801 pbl_ptr = ecore_chain_get_pbl_phys(&cq->pbl); in qlnxr_create_cq()
1802 cq->ibcq.cqe = cq->pbl.capacity; in qlnxr_create_cq()
1845 cq->toggle_cqe = ecore_chain_get_last_elem(&cq->pbl); in qlnxr_create_cq()
1851 cq->cq_cons = ecore_chain_get_cons_idx_u32(&cq->pbl); in qlnxr_create_cq()
1867 ecore_chain_free(&dev->ha->cdev, &cq->pbl); in qlnxr_create_cq()
1924 QL_DPRINT12(ha, "free cq->pbl cq_id = %d\n", cq->icid); in qlnxr_destroy_cq()
1925 ecore_chain_free(&dev->ha->cdev, &cq->pbl); in qlnxr_destroy_cq()
2312 ecore_chain_free(dev->cdev, &hw_srq->pbl); in qlnxr_free_srq_kernel_params()
2401 &hw_srq->pbl, NULL); in qlnxr_alloc_srq_kernel_params()
2751 &qp->sq.pbl, in qlnxr_roce_create_kernel_qp()
2755 QL_DPRINT11(ha, "ecore_chain_alloc qp->sq.pbl failed[%d]\n", rc); in qlnxr_roce_create_kernel_qp()
2759 in_params->sq_num_pages = ecore_chain_get_page_cnt(&qp->sq.pbl); in qlnxr_roce_create_kernel_qp()
2760 in_params->sq_pbl_ptr = ecore_chain_get_pbl_phys(&qp->sq.pbl); in qlnxr_roce_create_kernel_qp()
2770 &qp->rq.pbl, in qlnxr_roce_create_kernel_qp()
2775 "ecore_chain_alloc qp->rq.pbl failed[%d]\n", rc); in qlnxr_roce_create_kernel_qp()
2779 in_params->rq_num_pages = ecore_chain_get_page_cnt(&qp->rq.pbl); in qlnxr_roce_create_kernel_qp()
2780 in_params->rq_pbl_ptr = ecore_chain_get_pbl_phys(&qp->rq.pbl); in qlnxr_roce_create_kernel_qp()
2888 &qp->sq.pbl, in qlnxr_iwarp_create_kernel_qp()
2893 "ecore_chain_alloc qp->sq.pbl failed rc = %d\n", rc); in qlnxr_iwarp_create_kernel_qp()
2912 &qp->rq.pbl, in qlnxr_iwarp_create_kernel_qp()
2916 QL_DPRINT11(ha,, "ecore_chain_alloc qp->rq.pbl" in qlnxr_iwarp_create_kernel_qp()
3206 ecore_chain_reset(&qph->pbl); in qlnxr_reset_qp_hwq_info()
3809 // ecore_chain_free(dev->cdev, &qp->sq.pbl); in qlnxr_cleanup_kernel()
3817 // ecore_chain_free(dev->cdev, &qp->rq.pbl); in qlnxr_cleanup_kernel()
3979 wqe = (char *)ecore_chain_produce(&qp->sq.pbl); in qlnxr_prepare_sq_inline_data()
4024 struct rdma_sq_sge *sge = ecore_chain_produce(&qp->sq.pbl); in qlnxr_prepare_sq_sges()
4114 struct qlnxr_pbl *pbl; in qlnx_handle_completed_mrs() local
4121 pbl = list_first_entry(&info->inuse_pbl_list, in qlnx_handle_completed_mrs()
4124 list_del(&pbl->list_entry); in qlnx_handle_completed_mrs()
4125 list_add_tail(&pbl->list_entry, &info->free_pbl_list); in qlnx_handle_completed_mrs()
4140 fwqe2 = (struct rdma_sq_fmr_wqe_2nd *)ecore_chain_produce(&qp->sq.pbl); in qlnxr_prepare_reg()
4210 pbl_is_full = ecore_chain_get_elem_left_u32(&qp->sq.pbl) < in qlnxr_can_post_send()
4240 "error: WQ PBL is full. Post send on QP failed" in qlnxr_can_post_send()
4310 wqe = ecore_chain_produce(&qp->sq.pbl); in qlnxr_post_send()
4341 ecore_chain_produce(&qp->sq.pbl); in qlnxr_post_send()
4365 ecore_chain_produce(&qp->sq.pbl); in qlnxr_post_send()
4384 ecore_chain_produce(&qp->sq.pbl); in qlnxr_post_send()
4406 ecore_chain_produce(&qp->sq.pbl); in qlnxr_post_send()
4426 ecore_chain_produce(&qp->sq.pbl); in qlnxr_post_send()
4456 ecore_chain_produce(&qp->sq.pbl); in qlnxr_post_send()
4482 ecore_chain_produce(&qp->sq.pbl); in qlnxr_post_send()
4490 ecore_chain_produce(&qp->sq.pbl); in qlnxr_post_send()
4559 ecore_chain_set_prod(&qp->sq.pbl, in qlnxr_post_send()
4661 if ((ecore_chain_get_elem_left_u32(&qp->rq.pbl) < in qlnxr_post_recv()
4670 struct rdma_rq_sge *rqe = ecore_chain_produce(&qp->rq.pbl); in qlnxr_post_recv()
4686 struct rdma_rq_sge *rqe = ecore_chain_produce(&qp->rq.pbl); in qlnxr_post_recv()
4744 * algorithm determining whether we can free a pbl or not.
4824 ecore_chain_consume(&qp->sq.pbl); in process_req()
5035 /* PBL is maintained in case of WR granularity. in process_resp_one_srq()
5059 ecore_chain_consume(&qp->rq.pbl); in process_resp_one()
5090 ecore_chain_consume(&qp->rq.pbl); in process_resp_flush()
5239 old_cons = ecore_chain_get_cons_idx_u32(&cq->pbl); in qlnxr_poll_cq()
5288 new_cons = ecore_chain_get_cons_idx_u32(&cq->pbl); in qlnxr_poll_cq()
5381 1 /* allow dual layer pbl */); in __qlnxr_alloc_mr()