Lines Matching refs:pd
385 static int ocrdma_get_pd_num(struct ocrdma_dev *dev, struct ocrdma_pd *pd) in ocrdma_get_pd_num() argument
391 if (pd->dpp_enabled) { in ocrdma_get_pd_num()
395 pd->id = dev->pd_mgr->pd_dpp_start + pd_idx; in ocrdma_get_pd_num()
396 pd->dpp_page = dev->pd_mgr->dpp_page_index + pd_idx; in ocrdma_get_pd_num()
400 pd->id = dev->pd_mgr->pd_norm_start + pd_idx; in ocrdma_get_pd_num()
401 pd->dpp_enabled = false; in ocrdma_get_pd_num()
408 pd->id = dev->pd_mgr->pd_norm_start + pd_idx; in ocrdma_get_pd_num()
421 struct ocrdma_pd *pd = NULL; in _ocrdma_alloc_pd() local
424 pd = kzalloc(sizeof(*pd), GFP_KERNEL); in _ocrdma_alloc_pd()
425 if (!pd) in _ocrdma_alloc_pd()
429 pd->dpp_enabled = in _ocrdma_alloc_pd()
431 pd->num_dpp_qp = in _ocrdma_alloc_pd()
432 pd->dpp_enabled ? (dev->nic_info.db_page_size / in _ocrdma_alloc_pd()
437 status = ocrdma_get_pd_num(dev, pd); in _ocrdma_alloc_pd()
439 return pd; in _ocrdma_alloc_pd()
441 kfree(pd); in _ocrdma_alloc_pd()
447 status = ocrdma_mbx_alloc_pd(dev, pd); in _ocrdma_alloc_pd()
449 if (pd->dpp_enabled) { in _ocrdma_alloc_pd()
450 pd->dpp_enabled = false; in _ocrdma_alloc_pd()
451 pd->num_dpp_qp = 0; in _ocrdma_alloc_pd()
454 kfree(pd); in _ocrdma_alloc_pd()
459 return pd; in _ocrdma_alloc_pd()
463 struct ocrdma_pd *pd) in is_ucontext_pd() argument
465 return (uctx->cntxt_pd == pd ? true : false); in is_ucontext_pd()
469 struct ocrdma_pd *pd) in _ocrdma_dealloc_pd() argument
474 status = ocrdma_put_pd_num(dev, pd->id, pd->dpp_enabled); in _ocrdma_dealloc_pd()
476 status = ocrdma_mbx_dealloc_pd(dev, pd); in _ocrdma_dealloc_pd()
478 kfree(pd); in _ocrdma_dealloc_pd()
503 struct ocrdma_pd *pd = uctx->cntxt_pd; in ocrdma_dealloc_ucontext_pd() local
504 struct ocrdma_dev *dev = get_ocrdma_dev(pd->ibpd.device); in ocrdma_dealloc_ucontext_pd()
508 __func__, dev->id, pd->id); in ocrdma_dealloc_ucontext_pd()
511 (void)_ocrdma_dealloc_pd(dev, pd); in ocrdma_dealloc_ucontext_pd()
517 struct ocrdma_pd *pd = NULL; in ocrdma_get_ucontext_pd() local
522 pd = uctx->cntxt_pd; in ocrdma_get_ucontext_pd()
526 return pd; in ocrdma_get_ucontext_pd()
662 static int ocrdma_copy_pd_uresp(struct ocrdma_dev *dev, struct ocrdma_pd *pd, in ocrdma_copy_pd_uresp() argument
674 rsp.id = pd->id; in ocrdma_copy_pd_uresp()
675 rsp.dpp_enabled = pd->dpp_enabled; in ocrdma_copy_pd_uresp()
676 db_page_addr = ocrdma_get_db_addr(dev, pd->id); in ocrdma_copy_pd_uresp()
683 if (pd->dpp_enabled) { in ocrdma_copy_pd_uresp()
685 (pd->id * PAGE_SIZE); in ocrdma_copy_pd_uresp()
698 pd->uctx = uctx; in ocrdma_copy_pd_uresp()
702 if (pd->dpp_enabled) in ocrdma_copy_pd_uresp()
703 ocrdma_del_mmap(pd->uctx, dpp_page_addr, PAGE_SIZE); in ocrdma_copy_pd_uresp()
705 ocrdma_del_mmap(pd->uctx, db_page_addr, db_page_size); in ocrdma_copy_pd_uresp()
714 struct ocrdma_pd *pd; in ocrdma_alloc_pd() local
721 pd = ocrdma_get_ucontext_pd(uctx); in ocrdma_alloc_pd()
722 if (pd) { in ocrdma_alloc_pd()
728 pd = _ocrdma_alloc_pd(dev, uctx, udata); in ocrdma_alloc_pd()
729 if (IS_ERR(pd)) { in ocrdma_alloc_pd()
730 status = PTR_ERR(pd); in ocrdma_alloc_pd()
736 status = ocrdma_copy_pd_uresp(dev, pd, context, udata); in ocrdma_alloc_pd()
740 return &pd->ibpd; in ocrdma_alloc_pd()
746 status = _ocrdma_dealloc_pd(dev, pd); in ocrdma_alloc_pd()
754 struct ocrdma_pd *pd = get_ocrdma_pd(ibpd); in ocrdma_dealloc_pd() local
760 uctx = pd->uctx; in ocrdma_dealloc_pd()
763 (pd->id * PAGE_SIZE); in ocrdma_dealloc_pd()
764 if (pd->dpp_enabled) in ocrdma_dealloc_pd()
765 ocrdma_del_mmap(pd->uctx, dpp_db, PAGE_SIZE); in ocrdma_dealloc_pd()
766 usr_db = ocrdma_get_db_addr(dev, pd->id); in ocrdma_dealloc_pd()
767 ocrdma_del_mmap(pd->uctx, usr_db, dev->nic_info.db_page_size); in ocrdma_dealloc_pd()
769 if (is_ucontext_pd(uctx, pd)) { in ocrdma_dealloc_pd()
774 status = _ocrdma_dealloc_pd(dev, pd); in ocrdma_dealloc_pd()
806 struct ocrdma_pd *pd = get_ocrdma_pd(ibpd); in ocrdma_get_dma_mr() local
818 status = ocrdma_alloc_lkey(dev, mr, pd->id, acc, 0, in ocrdma_get_dma_mr()
959 struct ocrdma_pd *pd; in ocrdma_reg_user_mr() local
962 pd = get_ocrdma_pd(ibpd); in ocrdma_reg_user_mr()
993 status = ocrdma_reg_mr(dev, &mr->hwmr, pd->id, acc); in ocrdma_reg_user_mr()
1292 struct ocrdma_pd *pd = qp->pd; in ocrdma_copy_qp_uresp() local
1293 struct ocrdma_dev *dev = get_ocrdma_dev(pd->ibpd.device); in ocrdma_copy_qp_uresp()
1297 (pd->id * dev->nic_info.db_page_size); in ocrdma_copy_qp_uresp()
1326 status = ocrdma_add_mmap(pd->uctx, uresp.sq_page_addr[0], in ocrdma_copy_qp_uresp()
1332 status = ocrdma_add_mmap(pd->uctx, uresp.rq_page_addr[0], in ocrdma_copy_qp_uresp()
1339 ocrdma_del_mmap(pd->uctx, uresp.sq_page_addr[0], uresp.sq_page_size); in ocrdma_copy_qp_uresp()
1345 struct ocrdma_pd *pd) in ocrdma_set_qp_db() argument
1349 (pd->id * dev->nic_info.db_page_size) + in ocrdma_set_qp_db()
1352 (pd->id * dev->nic_info.db_page_size) + in ocrdma_set_qp_db()
1356 (pd->id * dev->nic_info.db_page_size) + in ocrdma_set_qp_db()
1359 (pd->id * dev->nic_info.db_page_size) + in ocrdma_set_qp_db()
1380 struct ocrdma_pd *pd, in ocrdma_set_qp_init_params() argument
1383 qp->pd = pd; in ocrdma_set_qp_init_params()
1412 struct ocrdma_pd *pd = get_ocrdma_pd(ibpd); in ocrdma_create_qp() local
1432 ocrdma_set_qp_init_params(qp, pd, attrs); in ocrdma_create_qp()
1454 ocrdma_set_qp_db(dev, qp, pd); in ocrdma_create_qp()
1790 struct ocrdma_pd *pd; in ocrdma_destroy_qp() local
1800 pd = qp->pd; in ocrdma_destroy_qp()
1829 if (!pd->uctx) { in ocrdma_destroy_qp()
1835 if (pd->uctx) { in ocrdma_destroy_qp()
1836 ocrdma_del_mmap(pd->uctx, (u64) qp->sq.pa, in ocrdma_destroy_qp()
1839 ocrdma_del_mmap(pd->uctx, (u64) qp->rq.pa, in ocrdma_destroy_qp()
1863 (srq->pd->id * dev->nic_info.db_page_size); in ocrdma_copy_srq_uresp()
1877 status = ocrdma_add_mmap(srq->pd->uctx, uresp.rq_page_addr[0], in ocrdma_copy_srq_uresp()
1889 struct ocrdma_pd *pd = get_ocrdma_pd(ibpd); in ocrdma_create_srq() local
1903 srq->pd = pd; in ocrdma_create_srq()
1904 srq->db = dev->nic_info.db + (pd->id * dev->nic_info.db_page_size); in ocrdma_create_srq()
1905 status = ocrdma_mbx_create_srq(dev, srq, init_attr, pd); in ocrdma_create_srq()
1984 if (srq->pd->uctx) in ocrdma_destroy_srq()
1985 ocrdma_del_mmap(srq->pd->uctx, (u64) srq->rq.pa, in ocrdma_destroy_srq()
3021 struct ocrdma_pd *pd = get_ocrdma_pd(ibpd); in ocrdma_alloc_mr() local
3052 status = ocrdma_reg_mr(dev, &mr->hwmr, pd->id, 0); in ocrdma_alloc_mr()
3180 struct ocrdma_pd *pd = get_ocrdma_pd(ibpd); in ocrdma_reg_kernel_mr() local
3216 status = ocrdma_reg_mr(dev, &mr->hwmr, pd->id, acc); in ocrdma_reg_kernel_mr()