Lines Matching refs:bfregn
651 int bfregn = -ENOMEM; in alloc_bfreg() local
655 bfregn = alloc_high_class_bfreg(dev, bfregi); in alloc_bfreg()
656 if (bfregn < 0) in alloc_bfreg()
657 bfregn = alloc_med_class_bfreg(dev, bfregi); in alloc_bfreg()
660 if (bfregn < 0) { in alloc_bfreg()
662 bfregn = 0; in alloc_bfreg()
663 bfregi->count[bfregn]++; in alloc_bfreg()
667 return bfregn; in alloc_bfreg()
670 void mlx5_ib_free_bfreg(struct mlx5_ib_dev *dev, struct mlx5_bfreg_info *bfregi, int bfregn) in mlx5_ib_free_bfreg() argument
673 bfregi->count[bfregn]--; in mlx5_ib_free_bfreg()
717 struct mlx5_bfreg_info *bfregi, u32 bfregn, in bfregn_to_uar_index() argument
726 index_of_sys_page = bfregn / bfregs_per_sys_page; in bfregn_to_uar_index()
734 if (bfregn > bfregi->num_dyn_bfregs || in bfregn_to_uar_index()
741 offset = bfregn % bfregs_per_sys_page / MLX5_NON_FP_BFREGS_PER_UAR; in bfregn_to_uar_index()
849 struct mlx5_bfreg_info *bfregi, int bfregn) in adjust_bfregn() argument
851 return bfregn / MLX5_NON_FP_BFREGS_PER_UAR * MLX5_BFREGS_PER_UAR + in adjust_bfregn()
852 bfregn % MLX5_NON_FP_BFREGS_PER_UAR; in adjust_bfregn()
869 int bfregn; in create_user_qp() local
890 bfregn = MLX5_IB_INVALID_BFREG; in create_user_qp()
896 bfregn = MLX5_CROSS_CHANNEL_BFREG; in create_user_qp()
899 bfregn = alloc_bfreg(dev, &context->bfregi); in create_user_qp()
900 if (bfregn < 0) in create_user_qp()
901 return bfregn; in create_user_qp()
904 mlx5_ib_dbg(dev, "bfregn 0x%x, uar_index 0x%x\n", bfregn, uar_index); in create_user_qp()
905 if (bfregn != MLX5_IB_INVALID_BFREG) in create_user_qp()
906 uar_index = bfregn_to_uar_index(dev, &context->bfregi, bfregn, in create_user_qp()
949 if (bfregn != MLX5_IB_INVALID_BFREG) in create_user_qp()
950 resp->bfreg_index = adjust_bfregn(dev, &context->bfregi, bfregn); in create_user_qp()
953 qp->bfregn = bfregn; in create_user_qp()
980 if (bfregn != MLX5_IB_INVALID_BFREG) in create_user_qp()
981 mlx5_ib_free_bfreg(dev, &context->bfregi, bfregn); in create_user_qp()
1002 if (qp->bfregn != MLX5_IB_INVALID_BFREG) in destroy_qp_user()
1003 mlx5_ib_free_bfreg(dev, &context->bfregi, qp->bfregn); in destroy_qp_user()