Lines Matching refs:pd
325 static int ocrdma_get_pd_num(struct ocrdma_dev *dev, struct ocrdma_pd *pd) in ocrdma_get_pd_num() argument
331 if (pd->dpp_enabled) { in ocrdma_get_pd_num()
335 pd->id = dev->pd_mgr->pd_dpp_start + pd_idx; in ocrdma_get_pd_num()
336 pd->dpp_page = dev->pd_mgr->dpp_page_index + pd_idx; in ocrdma_get_pd_num()
340 pd->id = dev->pd_mgr->pd_norm_start + pd_idx; in ocrdma_get_pd_num()
341 pd->dpp_enabled = false; in ocrdma_get_pd_num()
348 pd->id = dev->pd_mgr->pd_norm_start + pd_idx; in ocrdma_get_pd_num()
361 struct ocrdma_pd *pd = NULL; in _ocrdma_alloc_pd() local
364 pd = kzalloc(sizeof(*pd), GFP_KERNEL); in _ocrdma_alloc_pd()
365 if (!pd) in _ocrdma_alloc_pd()
369 pd->dpp_enabled = in _ocrdma_alloc_pd()
371 pd->num_dpp_qp = in _ocrdma_alloc_pd()
372 pd->dpp_enabled ? (dev->nic_info.db_page_size / in _ocrdma_alloc_pd()
377 status = ocrdma_get_pd_num(dev, pd); in _ocrdma_alloc_pd()
378 return (status == 0) ? pd : ERR_PTR(status); in _ocrdma_alloc_pd()
382 status = ocrdma_mbx_alloc_pd(dev, pd); in _ocrdma_alloc_pd()
384 if (pd->dpp_enabled) { in _ocrdma_alloc_pd()
385 pd->dpp_enabled = false; in _ocrdma_alloc_pd()
386 pd->num_dpp_qp = 0; in _ocrdma_alloc_pd()
389 kfree(pd); in _ocrdma_alloc_pd()
394 return pd; in _ocrdma_alloc_pd()
398 struct ocrdma_pd *pd) in is_ucontext_pd() argument
400 return (uctx->cntxt_pd == pd ? true : false); in is_ucontext_pd()
404 struct ocrdma_pd *pd) in _ocrdma_dealloc_pd() argument
409 status = ocrdma_put_pd_num(dev, pd->id, pd->dpp_enabled); in _ocrdma_dealloc_pd()
411 status = ocrdma_mbx_dealloc_pd(dev, pd); in _ocrdma_dealloc_pd()
413 kfree(pd); in _ocrdma_dealloc_pd()
438 struct ocrdma_pd *pd = uctx->cntxt_pd; in ocrdma_dealloc_ucontext_pd() local
439 struct ocrdma_dev *dev = get_ocrdma_dev(pd->ibpd.device); in ocrdma_dealloc_ucontext_pd()
443 __func__, dev->id, pd->id); in ocrdma_dealloc_ucontext_pd()
446 (void)_ocrdma_dealloc_pd(dev, pd); in ocrdma_dealloc_ucontext_pd()
452 struct ocrdma_pd *pd = NULL; in ocrdma_get_ucontext_pd() local
457 pd = uctx->cntxt_pd; in ocrdma_get_ucontext_pd()
461 return pd; in ocrdma_get_ucontext_pd()
597 static int ocrdma_copy_pd_uresp(struct ocrdma_dev *dev, struct ocrdma_pd *pd, in ocrdma_copy_pd_uresp() argument
609 rsp.id = pd->id; in ocrdma_copy_pd_uresp()
610 rsp.dpp_enabled = pd->dpp_enabled; in ocrdma_copy_pd_uresp()
611 db_page_addr = ocrdma_get_db_addr(dev, pd->id); in ocrdma_copy_pd_uresp()
618 if (pd->dpp_enabled) { in ocrdma_copy_pd_uresp()
620 (pd->id * PAGE_SIZE); in ocrdma_copy_pd_uresp()
633 pd->uctx = uctx; in ocrdma_copy_pd_uresp()
637 if (pd->dpp_enabled) in ocrdma_copy_pd_uresp()
638 ocrdma_del_mmap(pd->uctx, dpp_page_addr, PAGE_SIZE); in ocrdma_copy_pd_uresp()
640 ocrdma_del_mmap(pd->uctx, db_page_addr, db_page_size); in ocrdma_copy_pd_uresp()
649 struct ocrdma_pd *pd; in ocrdma_alloc_pd() local
656 pd = ocrdma_get_ucontext_pd(uctx); in ocrdma_alloc_pd()
657 if (pd) { in ocrdma_alloc_pd()
663 pd = _ocrdma_alloc_pd(dev, uctx, udata); in ocrdma_alloc_pd()
664 if (IS_ERR(pd)) { in ocrdma_alloc_pd()
665 status = PTR_ERR(pd); in ocrdma_alloc_pd()
671 status = ocrdma_copy_pd_uresp(dev, pd, context, udata); in ocrdma_alloc_pd()
675 return &pd->ibpd; in ocrdma_alloc_pd()
681 status = _ocrdma_dealloc_pd(dev, pd); in ocrdma_alloc_pd()
689 struct ocrdma_pd *pd = get_ocrdma_pd(ibpd); in ocrdma_dealloc_pd() local
695 uctx = pd->uctx; in ocrdma_dealloc_pd()
698 (pd->id * PAGE_SIZE); in ocrdma_dealloc_pd()
699 if (pd->dpp_enabled) in ocrdma_dealloc_pd()
700 ocrdma_del_mmap(pd->uctx, dpp_db, PAGE_SIZE); in ocrdma_dealloc_pd()
701 usr_db = ocrdma_get_db_addr(dev, pd->id); in ocrdma_dealloc_pd()
702 ocrdma_del_mmap(pd->uctx, usr_db, dev->nic_info.db_page_size); in ocrdma_dealloc_pd()
704 if (is_ucontext_pd(uctx, pd)) { in ocrdma_dealloc_pd()
709 status = _ocrdma_dealloc_pd(dev, pd); in ocrdma_dealloc_pd()
741 struct ocrdma_pd *pd = get_ocrdma_pd(ibpd); in ocrdma_get_dma_mr() local
753 status = ocrdma_alloc_lkey(dev, mr, pd->id, acc, 0, in ocrdma_get_dma_mr()
894 struct ocrdma_pd *pd; in ocrdma_reg_user_mr() local
897 pd = get_ocrdma_pd(ibpd); in ocrdma_reg_user_mr()
928 status = ocrdma_reg_mr(dev, &mr->hwmr, pd->id, acc); in ocrdma_reg_user_mr()
1221 struct ocrdma_pd *pd = qp->pd; in ocrdma_copy_qp_uresp() local
1222 struct ocrdma_dev *dev = get_ocrdma_dev(pd->ibpd.device); in ocrdma_copy_qp_uresp()
1226 (pd->id * dev->nic_info.db_page_size); in ocrdma_copy_qp_uresp()
1255 status = ocrdma_add_mmap(pd->uctx, uresp.sq_page_addr[0], in ocrdma_copy_qp_uresp()
1261 status = ocrdma_add_mmap(pd->uctx, uresp.rq_page_addr[0], in ocrdma_copy_qp_uresp()
1268 ocrdma_del_mmap(pd->uctx, uresp.sq_page_addr[0], uresp.sq_page_size); in ocrdma_copy_qp_uresp()
1274 struct ocrdma_pd *pd) in ocrdma_set_qp_db() argument
1278 (pd->id * dev->nic_info.db_page_size) + in ocrdma_set_qp_db()
1281 (pd->id * dev->nic_info.db_page_size) + in ocrdma_set_qp_db()
1285 (pd->id * dev->nic_info.db_page_size) + in ocrdma_set_qp_db()
1288 (pd->id * dev->nic_info.db_page_size) + in ocrdma_set_qp_db()
1309 struct ocrdma_pd *pd, in ocrdma_set_qp_init_params() argument
1312 qp->pd = pd; in ocrdma_set_qp_init_params()
1341 struct ocrdma_pd *pd = get_ocrdma_pd(ibpd); in ocrdma_create_qp() local
1361 ocrdma_set_qp_init_params(qp, pd, attrs); in ocrdma_create_qp()
1383 ocrdma_set_qp_db(dev, qp, pd); in ocrdma_create_qp()
1719 struct ocrdma_pd *pd; in ocrdma_destroy_qp() local
1729 pd = qp->pd; in ocrdma_destroy_qp()
1758 if (!pd->uctx) { in ocrdma_destroy_qp()
1764 if (pd->uctx) { in ocrdma_destroy_qp()
1765 ocrdma_del_mmap(pd->uctx, (u64) qp->sq.pa, in ocrdma_destroy_qp()
1768 ocrdma_del_mmap(pd->uctx, (u64) qp->rq.pa, in ocrdma_destroy_qp()
1792 (srq->pd->id * dev->nic_info.db_page_size); in ocrdma_copy_srq_uresp()
1806 status = ocrdma_add_mmap(srq->pd->uctx, uresp.rq_page_addr[0], in ocrdma_copy_srq_uresp()
1818 struct ocrdma_pd *pd = get_ocrdma_pd(ibpd); in ocrdma_create_srq() local
1832 srq->pd = pd; in ocrdma_create_srq()
1833 srq->db = dev->nic_info.db + (pd->id * dev->nic_info.db_page_size); in ocrdma_create_srq()
1834 status = ocrdma_mbx_create_srq(dev, srq, init_attr, pd); in ocrdma_create_srq()
1913 if (srq->pd->uctx) in ocrdma_destroy_srq()
1914 ocrdma_del_mmap(srq->pd->uctx, (u64) srq->rq.pa, in ocrdma_destroy_srq()
2976 struct ocrdma_pd *pd = get_ocrdma_pd(ibpd); in ocrdma_alloc_frmr() local
2998 status = ocrdma_reg_mr(dev, &mr->hwmr, pd->id, 0); in ocrdma_alloc_frmr()
3144 struct ocrdma_pd *pd = get_ocrdma_pd(ibpd); in ocrdma_reg_kernel_mr() local
3180 status = ocrdma_reg_mr(dev, &mr->hwmr, pd->id, acc); in ocrdma_reg_kernel_mr()