bfregi            766 drivers/infiniband/hw/mlx5/cq.c 	*index = context->bfregi.sys_pages[0];
bfregi           1015 drivers/infiniband/hw/mlx5/devx.c 	dev_idx = bfregn_to_uar_index(dev, &c->bfregi, user_idx, true);
bfregi           1610 drivers/infiniband/hw/mlx5/main.c 			     struct mlx5_bfreg_info *bfregi)
bfregi           1632 drivers/infiniband/hw/mlx5/main.c 	bfregi->num_static_sys_pages = req->total_num_bfregs / bfregs_per_sys_page;
bfregi           1633 drivers/infiniband/hw/mlx5/main.c 	bfregi->num_dyn_bfregs = ALIGN(calc_dynamic_bfregs(uars_per_sys_page), bfregs_per_sys_page);
bfregi           1634 drivers/infiniband/hw/mlx5/main.c 	bfregi->total_num_bfregs = req->total_num_bfregs + bfregi->num_dyn_bfregs;
bfregi           1635 drivers/infiniband/hw/mlx5/main.c 	bfregi->num_sys_pages = bfregi->total_num_bfregs / bfregs_per_sys_page;
bfregi           1640 drivers/infiniband/hw/mlx5/main.c 		    req->total_num_bfregs, bfregi->total_num_bfregs,
bfregi           1641 drivers/infiniband/hw/mlx5/main.c 		    bfregi->num_sys_pages);
bfregi           1648 drivers/infiniband/hw/mlx5/main.c 	struct mlx5_bfreg_info *bfregi;
bfregi           1652 drivers/infiniband/hw/mlx5/main.c 	bfregi = &context->bfregi;
bfregi           1653 drivers/infiniband/hw/mlx5/main.c 	for (i = 0; i < bfregi->num_static_sys_pages; i++) {
bfregi           1654 drivers/infiniband/hw/mlx5/main.c 		err = mlx5_cmd_alloc_uar(dev->mdev, &bfregi->sys_pages[i]);
bfregi           1658 drivers/infiniband/hw/mlx5/main.c 		mlx5_ib_dbg(dev, "allocated uar %d\n", bfregi->sys_pages[i]);
bfregi           1661 drivers/infiniband/hw/mlx5/main.c 	for (i = bfregi->num_static_sys_pages; i < bfregi->num_sys_pages; i++)
bfregi           1662 drivers/infiniband/hw/mlx5/main.c 		bfregi->sys_pages[i] = MLX5_IB_INVALID_UAR_INDEX;
bfregi           1668 drivers/infiniband/hw/mlx5/main.c 		if (mlx5_cmd_free_uar(dev->mdev, bfregi->sys_pages[i]))
bfregi           1677 drivers/infiniband/hw/mlx5/main.c 	struct mlx5_bfreg_info *bfregi;
bfregi           1680 drivers/infiniband/hw/mlx5/main.c 	bfregi = &context->bfregi;
bfregi           1681 drivers/infiniband/hw/mlx5/main.c 	for (i = 0; i < bfregi->num_sys_pages; i++)
bfregi           1682 drivers/infiniband/hw/mlx5/main.c 		if (i < bfregi->num_static_sys_pages ||
bfregi           1683 drivers/infiniband/hw/mlx5/main.c 		    bfregi->sys_pages[i] != MLX5_IB_INVALID_UAR_INDEX)
bfregi           1684 drivers/infiniband/hw/mlx5/main.c 			mlx5_cmd_free_uar(dev->mdev, bfregi->sys_pages[i]);
bfregi           1774 drivers/infiniband/hw/mlx5/main.c 	struct mlx5_bfreg_info *bfregi;
bfregi           1839 drivers/infiniband/hw/mlx5/main.c 	bfregi = &context->bfregi;
bfregi           1842 drivers/infiniband/hw/mlx5/main.c 	err = calc_total_bfregs(dev, lib_uar_4k, &req, bfregi);
bfregi           1846 drivers/infiniband/hw/mlx5/main.c 	mutex_init(&bfregi->lock);
bfregi           1847 drivers/infiniband/hw/mlx5/main.c 	bfregi->lib_uar_4k = lib_uar_4k;
bfregi           1848 drivers/infiniband/hw/mlx5/main.c 	bfregi->count = kcalloc(bfregi->total_num_bfregs, sizeof(*bfregi->count),
bfregi           1850 drivers/infiniband/hw/mlx5/main.c 	if (!bfregi->count) {
bfregi           1855 drivers/infiniband/hw/mlx5/main.c 	bfregi->sys_pages = kcalloc(bfregi->num_sys_pages,
bfregi           1856 drivers/infiniband/hw/mlx5/main.c 				    sizeof(*bfregi->sys_pages),
bfregi           1858 drivers/infiniband/hw/mlx5/main.c 	if (!bfregi->sys_pages) {
bfregi           1937 drivers/infiniband/hw/mlx5/main.c 		resp.num_dyn_bfregs = bfregi->num_dyn_bfregs;
bfregi           1954 drivers/infiniband/hw/mlx5/main.c 	bfregi->ver = ver;
bfregi           1955 drivers/infiniband/hw/mlx5/main.c 	bfregi->num_low_latency_bfregs = req.num_low_latency_bfregs;
bfregi           1980 drivers/infiniband/hw/mlx5/main.c 	kfree(bfregi->sys_pages);
bfregi           1983 drivers/infiniband/hw/mlx5/main.c 	kfree(bfregi->count);
bfregi           1993 drivers/infiniband/hw/mlx5/main.c 	struct mlx5_bfreg_info *bfregi;
bfregi           1995 drivers/infiniband/hw/mlx5/main.c 	bfregi = &context->bfregi;
bfregi           2002 drivers/infiniband/hw/mlx5/main.c 	kfree(bfregi->sys_pages);
bfregi           2003 drivers/infiniband/hw/mlx5/main.c 	kfree(bfregi->count);
bfregi           2084 drivers/infiniband/hw/mlx5/main.c 	struct mlx5_bfreg_info *bfregi = &context->bfregi;
bfregi           2092 drivers/infiniband/hw/mlx5/main.c 	int max_valid_idx = dyn_uar ? bfregi->num_sys_pages :
bfregi           2093 drivers/infiniband/hw/mlx5/main.c 				bfregi->num_static_sys_pages;
bfregi           2099 drivers/infiniband/hw/mlx5/main.c 		idx = get_extended_index(vma->vm_pgoff) + bfregi->num_static_sys_pages;
bfregi           2134 drivers/infiniband/hw/mlx5/main.c 		uars_per_page = get_uars_per_sys_page(dev, bfregi->lib_uar_4k);
bfregi           2136 drivers/infiniband/hw/mlx5/main.c 		if (bfreg_dyn_idx >= bfregi->total_num_bfregs) {
bfregi           2138 drivers/infiniband/hw/mlx5/main.c 				     bfreg_dyn_idx, bfregi->total_num_bfregs);
bfregi           2142 drivers/infiniband/hw/mlx5/main.c 		mutex_lock(&bfregi->lock);
bfregi           2146 drivers/infiniband/hw/mlx5/main.c 		if (bfregi->count[bfreg_dyn_idx]) {
bfregi           2148 drivers/infiniband/hw/mlx5/main.c 			mutex_unlock(&bfregi->lock);
bfregi           2152 drivers/infiniband/hw/mlx5/main.c 		bfregi->count[bfreg_dyn_idx]++;
bfregi           2153 drivers/infiniband/hw/mlx5/main.c 		mutex_unlock(&bfregi->lock);
bfregi           2161 drivers/infiniband/hw/mlx5/main.c 		uar_index = bfregi->sys_pages[idx];
bfregi           2177 drivers/infiniband/hw/mlx5/main.c 		bfregi->sys_pages[idx] = uar_index;
bfregi           2187 drivers/infiniband/hw/mlx5/main.c 	mlx5_ib_free_bfreg(dev, bfregi, bfreg_dyn_idx);
bfregi            132 drivers/infiniband/hw/mlx5/mlx5_ib.h 	struct mlx5_bfreg_info	bfregi;
bfregi           1330 drivers/infiniband/hw/mlx5/mlx5_ib.h void mlx5_ib_free_bfreg(struct mlx5_ib_dev *dev, struct mlx5_bfreg_info *bfregi,
bfregi           1467 drivers/infiniband/hw/mlx5/mlx5_ib.h 				      struct mlx5_bfreg_info *bfregi)
bfregi           1469 drivers/infiniband/hw/mlx5/mlx5_ib.h 	return get_uars_per_sys_page(dev, bfregi->lib_uar_4k) * bfregi->num_static_sys_pages;
bfregi           1476 drivers/infiniband/hw/mlx5/mlx5_ib.h 			struct mlx5_bfreg_info *bfregi, u32 bfregn,
bfregi            582 drivers/infiniband/hw/mlx5/qp.c static int max_bfregs(struct mlx5_ib_dev *dev, struct mlx5_bfreg_info *bfregi)
bfregi            584 drivers/infiniband/hw/mlx5/qp.c 	return get_num_static_uars(dev, bfregi) * MLX5_NON_FP_BFREGS_PER_UAR;
bfregi            588 drivers/infiniband/hw/mlx5/qp.c 			 struct mlx5_bfreg_info *bfregi)
bfregi            592 drivers/infiniband/hw/mlx5/qp.c 	n = max_bfregs(dev, bfregi) - bfregi->num_low_latency_bfregs -
bfregi            599 drivers/infiniband/hw/mlx5/qp.c 			   struct mlx5_bfreg_info *bfregi)
bfregi            601 drivers/infiniband/hw/mlx5/qp.c 	return num_med_bfreg(dev, bfregi) ? 1 : -ENOMEM;
bfregi            605 drivers/infiniband/hw/mlx5/qp.c 			  struct mlx5_bfreg_info *bfregi)
bfregi            609 drivers/infiniband/hw/mlx5/qp.c 	med = num_med_bfreg(dev, bfregi);
bfregi            614 drivers/infiniband/hw/mlx5/qp.c 				  struct mlx5_bfreg_info *bfregi)
bfregi            618 drivers/infiniband/hw/mlx5/qp.c 	for (i = first_hi_bfreg(dev, bfregi); i < max_bfregs(dev, bfregi); i++) {
bfregi            619 drivers/infiniband/hw/mlx5/qp.c 		if (!bfregi->count[i]) {
bfregi            620 drivers/infiniband/hw/mlx5/qp.c 			bfregi->count[i]++;
bfregi            629 drivers/infiniband/hw/mlx5/qp.c 				 struct mlx5_bfreg_info *bfregi)
bfregi            631 drivers/infiniband/hw/mlx5/qp.c 	int minidx = first_med_bfreg(dev, bfregi);
bfregi            637 drivers/infiniband/hw/mlx5/qp.c 	for (i = minidx; i < first_hi_bfreg(dev, bfregi); i++) {
bfregi            638 drivers/infiniband/hw/mlx5/qp.c 		if (bfregi->count[i] < bfregi->count[minidx])
bfregi            640 drivers/infiniband/hw/mlx5/qp.c 		if (!bfregi->count[minidx])
bfregi            644 drivers/infiniband/hw/mlx5/qp.c 	bfregi->count[minidx]++;
bfregi            649 drivers/infiniband/hw/mlx5/qp.c 		       struct mlx5_bfreg_info *bfregi)
bfregi            653 drivers/infiniband/hw/mlx5/qp.c 	mutex_lock(&bfregi->lock);
bfregi            654 drivers/infiniband/hw/mlx5/qp.c 	if (bfregi->ver >= 2) {
bfregi            655 drivers/infiniband/hw/mlx5/qp.c 		bfregn = alloc_high_class_bfreg(dev, bfregi);
bfregi            657 drivers/infiniband/hw/mlx5/qp.c 			bfregn = alloc_med_class_bfreg(dev, bfregi);
bfregi            663 drivers/infiniband/hw/mlx5/qp.c 		bfregi->count[bfregn]++;
bfregi            665 drivers/infiniband/hw/mlx5/qp.c 	mutex_unlock(&bfregi->lock);
bfregi            670 drivers/infiniband/hw/mlx5/qp.c void mlx5_ib_free_bfreg(struct mlx5_ib_dev *dev, struct mlx5_bfreg_info *bfregi, int bfregn)
bfregi            672 drivers/infiniband/hw/mlx5/qp.c 	mutex_lock(&bfregi->lock);
bfregi            673 drivers/infiniband/hw/mlx5/qp.c 	bfregi->count[bfregn]--;
bfregi            674 drivers/infiniband/hw/mlx5/qp.c 	mutex_unlock(&bfregi->lock);
bfregi            717 drivers/infiniband/hw/mlx5/qp.c 			struct mlx5_bfreg_info *bfregi, u32 bfregn,
bfregi            724 drivers/infiniband/hw/mlx5/qp.c 	bfregs_per_sys_page = get_uars_per_sys_page(dev, bfregi->lib_uar_4k) *
bfregi            729 drivers/infiniband/hw/mlx5/qp.c 		index_of_sys_page += bfregi->num_static_sys_pages;
bfregi            731 drivers/infiniband/hw/mlx5/qp.c 		if (index_of_sys_page >= bfregi->num_sys_pages)
bfregi            734 drivers/infiniband/hw/mlx5/qp.c 		if (bfregn > bfregi->num_dyn_bfregs ||
bfregi            735 drivers/infiniband/hw/mlx5/qp.c 		    bfregi->sys_pages[index_of_sys_page] == MLX5_IB_INVALID_UAR_INDEX) {
bfregi            742 drivers/infiniband/hw/mlx5/qp.c 	return bfregi->sys_pages[index_of_sys_page] + offset;
bfregi            849 drivers/infiniband/hw/mlx5/qp.c 			 struct mlx5_bfreg_info *bfregi, int bfregn)
bfregi            885 drivers/infiniband/hw/mlx5/qp.c 		uar_index = bfregn_to_uar_index(dev, &context->bfregi,
bfregi            899 drivers/infiniband/hw/mlx5/qp.c 		bfregn = alloc_bfreg(dev, &context->bfregi);
bfregi            906 drivers/infiniband/hw/mlx5/qp.c 		uar_index = bfregn_to_uar_index(dev, &context->bfregi, bfregn,
bfregi            950 drivers/infiniband/hw/mlx5/qp.c 		resp->bfreg_index = adjust_bfregn(dev, &context->bfregi, bfregn);
bfregi            981 drivers/infiniband/hw/mlx5/qp.c 		mlx5_ib_free_bfreg(dev, &context->bfregi, bfregn);
bfregi           1003 drivers/infiniband/hw/mlx5/qp.c 		mlx5_ib_free_bfreg(dev, &context->bfregi, qp->bfregn);