Thomas Bogendoerfer c2c20f
From: Tal Gilboa <talgi@nvidia.com>
Thomas Bogendoerfer c2c20f
Date: Sun, 18 Jul 2021 14:54:13 +0300
Thomas Bogendoerfer c2c20f
Subject: IB/mlx5: Rename is_apu_thread_cq function to is_apu_cq
Thomas Bogendoerfer c2c20f
Patch-mainline: v5.15-rc1
Thomas Bogendoerfer c2c20f
Git-commit: 616d5769345528b989294a242a5906b157a92837
Thomas Bogendoerfer c2c20f
References: jsc#SLE-19253
Thomas Bogendoerfer c2c20f
Thomas Bogendoerfer c2c20f
is_apu_thread_cq() used to detect CQs which are attached to APU
Thomas Bogendoerfer c2c20f
threads. This was extended to support other elements as well,
Thomas Bogendoerfer c2c20f
so the function was renamed to is_apu_cq().
Thomas Bogendoerfer c2c20f
Thomas Bogendoerfer c2c20f
c_eqn_or_apu_element was extended from 8 bits to 32 bits, which wan't
Thomas Bogendoerfer c2c20f
reflected when the APU support was first introduced.
Thomas Bogendoerfer c2c20f
Thomas Bogendoerfer c2c20f
Acked-by: Michael S. Tsirkin <mst@redhat.com> # vdpa
Thomas Bogendoerfer c2c20f
Signed-off-by: Tal Gilboa <talgi@nvidia.com>
Thomas Bogendoerfer c2c20f
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Thomas Bogendoerfer c2c20f
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Thomas Bogendoerfer c2c20f
---
Thomas Bogendoerfer c2c20f
 drivers/infiniband/hw/mlx5/cq.c                            |    2 +-
Thomas Bogendoerfer c2c20f
 drivers/infiniband/hw/mlx5/devx.c                          |    7 +++----
Thomas Bogendoerfer c2c20f
 drivers/net/ethernet/mellanox/mlx5/core/cq.c               |    3 ++-
Thomas Bogendoerfer c2c20f
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c          |    2 +-
Thomas Bogendoerfer c2c20f
 drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c        |    2 +-
Thomas Bogendoerfer c2c20f
 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c |    2 +-
Thomas Bogendoerfer c2c20f
 drivers/vdpa/mlx5/net/mlx5_vnet.c                          |    2 +-
Thomas Bogendoerfer c2c20f
 include/linux/mlx5/mlx5_ifc.h                              |    5 ++---
Thomas Bogendoerfer c2c20f
 8 files changed, 12 insertions(+), 13 deletions(-)
Thomas Bogendoerfer c2c20f
Thomas Bogendoerfer c2c20f
--- a/drivers/infiniband/hw/mlx5/cq.c
Thomas Bogendoerfer c2c20f
+++ b/drivers/infiniband/hw/mlx5/cq.c
Thomas Bogendoerfer c2c20f
@@ -996,7 +996,7 @@ int mlx5_ib_create_cq(struct ib_cq *ibcq
Thomas Bogendoerfer c2c20f
 				  MLX5_IB_CQ_PR_FLAGS_CQE_128_PAD));
Thomas Bogendoerfer c2c20f
 	MLX5_SET(cqc, cqc, log_cq_size, ilog2(entries));
Thomas Bogendoerfer c2c20f
 	MLX5_SET(cqc, cqc, uar_page, index);
Thomas Bogendoerfer c2c20f
-	MLX5_SET(cqc, cqc, c_eqn, eqn);
Thomas Bogendoerfer c2c20f
+	MLX5_SET(cqc, cqc, c_eqn_or_apu_element, eqn);
Thomas Bogendoerfer c2c20f
 	MLX5_SET64(cqc, cqc, dbr_addr, cq->db.dma);
Thomas Bogendoerfer c2c20f
 	if (cq->create_flags & IB_UVERBS_CQ_FLAGS_IGNORE_OVERRUN)
Thomas Bogendoerfer c2c20f
 		MLX5_SET(cqc, cqc, oi, 1);
Thomas Bogendoerfer c2c20f
--- a/drivers/infiniband/hw/mlx5/devx.c
Thomas Bogendoerfer c2c20f
+++ b/drivers/infiniband/hw/mlx5/devx.c
Thomas Bogendoerfer c2c20f
@@ -1436,11 +1436,10 @@ out:
Thomas Bogendoerfer c2c20f
 	rcu_read_unlock();
Thomas Bogendoerfer c2c20f
 }
Thomas Bogendoerfer c2c20f
 
Thomas Bogendoerfer c2c20f
-static bool is_apu_thread_cq(struct mlx5_ib_dev *dev, const void *in)
Thomas Bogendoerfer c2c20f
+static bool is_apu_cq(struct mlx5_ib_dev *dev, const void *in)
Thomas Bogendoerfer c2c20f
 {
Thomas Bogendoerfer c2c20f
 	if (!MLX5_CAP_GEN(dev->mdev, apu) ||
Thomas Bogendoerfer c2c20f
-	    !MLX5_GET(cqc, MLX5_ADDR_OF(create_cq_in, in, cq_context),
Thomas Bogendoerfer c2c20f
-		      apu_thread_cq))
Thomas Bogendoerfer c2c20f
+	    !MLX5_GET(cqc, MLX5_ADDR_OF(create_cq_in, in, cq_context), apu_cq))
Thomas Bogendoerfer c2c20f
 		return false;
Thomas Bogendoerfer c2c20f
 
Thomas Bogendoerfer c2c20f
 	return true;
Thomas Bogendoerfer c2c20f
@@ -1500,7 +1499,7 @@ static int UVERBS_HANDLER(MLX5_IB_METHOD
Thomas Bogendoerfer c2c20f
 		err = mlx5_core_create_dct(dev, &obj->core_dct, cmd_in,
Thomas Bogendoerfer c2c20f
 					   cmd_in_len, cmd_out, cmd_out_len);
Thomas Bogendoerfer c2c20f
 	} else if (opcode == MLX5_CMD_OP_CREATE_CQ &&
Thomas Bogendoerfer c2c20f
-		   !is_apu_thread_cq(dev, cmd_in)) {
Thomas Bogendoerfer c2c20f
+		   !is_apu_cq(dev, cmd_in)) {
Thomas Bogendoerfer c2c20f
 		obj->flags |= DEVX_OBJ_FLAGS_CQ;
Thomas Bogendoerfer c2c20f
 		obj->core_cq.comp = devx_cq_comp;
Thomas Bogendoerfer c2c20f
 		err = mlx5_core_create_cq(dev->mdev, &obj->core_cq,
Thomas Bogendoerfer c2c20f
--- a/drivers/net/ethernet/mellanox/mlx5/core/cq.c
Thomas Bogendoerfer c2c20f
+++ b/drivers/net/ethernet/mellanox/mlx5/core/cq.c
Thomas Bogendoerfer c2c20f
@@ -89,7 +89,8 @@ static void mlx5_add_cq_to_tasklet(struc
Thomas Bogendoerfer c2c20f
 int mlx5_core_create_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq,
Thomas Bogendoerfer c2c20f
 			u32 *in, int inlen, u32 *out, int outlen)
Thomas Bogendoerfer c2c20f
 {
Thomas Bogendoerfer c2c20f
-	int eqn = MLX5_GET(cqc, MLX5_ADDR_OF(create_cq_in, in, cq_context), c_eqn);
Thomas Bogendoerfer c2c20f
+	int eqn = MLX5_GET(cqc, MLX5_ADDR_OF(create_cq_in, in, cq_context),
Thomas Bogendoerfer c2c20f
+			   c_eqn_or_apu_element);
Thomas Bogendoerfer c2c20f
 	u32 din[MLX5_ST_SZ_DW(destroy_cq_in)] = {};
Thomas Bogendoerfer c2c20f
 	struct mlx5_eq_comp *eq;
Thomas Bogendoerfer c2c20f
 	int err;
Thomas Bogendoerfer c2c20f
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
Thomas Bogendoerfer c2c20f
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
Thomas Bogendoerfer c2c20f
@@ -1619,7 +1619,7 @@ static int mlx5e_create_cq(struct mlx5e_
Thomas Bogendoerfer c2c20f
 				  (__be64 *)MLX5_ADDR_OF(create_cq_in, in, pas));
Thomas Bogendoerfer c2c20f
 
Thomas Bogendoerfer c2c20f
 	MLX5_SET(cqc,   cqc, cq_period_mode, param->cq_period_mode);
Thomas Bogendoerfer c2c20f
-	MLX5_SET(cqc,   cqc, c_eqn,         eqn);
Thomas Bogendoerfer c2c20f
+	MLX5_SET(cqc,   cqc, c_eqn_or_apu_element, eqn);
Thomas Bogendoerfer c2c20f
 	MLX5_SET(cqc,   cqc, uar_page,      mdev->priv.uar->index);
Thomas Bogendoerfer c2c20f
 	MLX5_SET(cqc,   cqc, log_page_size, cq->wq_ctrl.buf.page_shift -
Thomas Bogendoerfer c2c20f
 					    MLX5_ADAPTER_PAGE_SHIFT);
Thomas Bogendoerfer c2c20f
--- a/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
Thomas Bogendoerfer c2c20f
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c
Thomas Bogendoerfer c2c20f
@@ -453,7 +453,7 @@ static int mlx5_fpga_conn_create_cq(stru
Thomas Bogendoerfer c2c20f
 
Thomas Bogendoerfer c2c20f
 	cqc = MLX5_ADDR_OF(create_cq_in, in, cq_context);
Thomas Bogendoerfer c2c20f
 	MLX5_SET(cqc, cqc, log_cq_size, ilog2(cq_size));
Thomas Bogendoerfer c2c20f
-	MLX5_SET(cqc, cqc, c_eqn, eqn);
Thomas Bogendoerfer c2c20f
+	MLX5_SET(cqc, cqc, c_eqn_or_apu_element, eqn);
Thomas Bogendoerfer c2c20f
 	MLX5_SET(cqc, cqc, uar_page, fdev->conn_res.uar->index);
Thomas Bogendoerfer c2c20f
 	MLX5_SET(cqc, cqc, log_page_size, conn->cq.wq_ctrl.buf.page_shift -
Thomas Bogendoerfer c2c20f
 			   MLX5_ADAPTER_PAGE_SHIFT);
Thomas Bogendoerfer c2c20f
--- a/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c
Thomas Bogendoerfer c2c20f
+++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c
Thomas Bogendoerfer c2c20f
@@ -789,7 +789,7 @@ static struct mlx5dr_cq *dr_create_cq(st
Thomas Bogendoerfer c2c20f
 
Thomas Bogendoerfer c2c20f
 	cqc = MLX5_ADDR_OF(create_cq_in, in, cq_context);
Thomas Bogendoerfer c2c20f
 	MLX5_SET(cqc, cqc, log_cq_size, ilog2(ncqe));
Thomas Bogendoerfer c2c20f
-	MLX5_SET(cqc, cqc, c_eqn, eqn);
Thomas Bogendoerfer c2c20f
+	MLX5_SET(cqc, cqc, c_eqn_or_apu_element, eqn);
Thomas Bogendoerfer c2c20f
 	MLX5_SET(cqc, cqc, uar_page, uar->index);
Thomas Bogendoerfer c2c20f
 	MLX5_SET(cqc, cqc, log_page_size, cq->wq_ctrl.buf.page_shift -
Thomas Bogendoerfer c2c20f
 		 MLX5_ADAPTER_PAGE_SHIFT);
Thomas Bogendoerfer c2c20f
--- a/drivers/vdpa/mlx5/net/mlx5_vnet.c
Thomas Bogendoerfer c2c20f
+++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c
Thomas Bogendoerfer c2c20f
@@ -572,7 +572,7 @@ static int cq_create(struct mlx5_vdpa_ne
Thomas Bogendoerfer c2c20f
 	cqc = MLX5_ADDR_OF(create_cq_in, in, cq_context);
Thomas Bogendoerfer c2c20f
 	MLX5_SET(cqc, cqc, log_cq_size, ilog2(num_ent));
Thomas Bogendoerfer c2c20f
 	MLX5_SET(cqc, cqc, uar_page, ndev->mvdev.res.uar->index);
Thomas Bogendoerfer c2c20f
-	MLX5_SET(cqc, cqc, c_eqn, eqn);
Thomas Bogendoerfer c2c20f
+	MLX5_SET(cqc, cqc, c_eqn_or_apu_element, eqn);
Thomas Bogendoerfer c2c20f
 	MLX5_SET64(cqc, cqc, dbr_addr, vcq->db.dma);
Thomas Bogendoerfer c2c20f
 
Thomas Bogendoerfer c2c20f
 	err = mlx5_core_create_cq(mdev, &vcq->mcq, in, inlen, out, sizeof(out));
Thomas Bogendoerfer c2c20f
--- a/include/linux/mlx5/mlx5_ifc.h
Thomas Bogendoerfer c2c20f
+++ b/include/linux/mlx5/mlx5_ifc.h
Thomas Bogendoerfer c2c20f
@@ -3912,7 +3912,7 @@ struct mlx5_ifc_cqc_bits {
Thomas Bogendoerfer c2c20f
 	u8         status[0x4];
Thomas Bogendoerfer c2c20f
 	u8         reserved_at_4[0x2];
Thomas Bogendoerfer c2c20f
 	u8         dbr_umem_valid[0x1];
Thomas Bogendoerfer c2c20f
-	u8         apu_thread_cq[0x1];
Thomas Bogendoerfer c2c20f
+	u8         apu_cq[0x1];
Thomas Bogendoerfer c2c20f
 	u8         cqe_sz[0x3];
Thomas Bogendoerfer c2c20f
 	u8         cc[0x1];
Thomas Bogendoerfer c2c20f
 	u8         reserved_at_c[0x1];
Thomas Bogendoerfer c2c20f
@@ -3938,8 +3938,7 @@ struct mlx5_ifc_cqc_bits {
Thomas Bogendoerfer c2c20f
 	u8         cq_period[0xc];
Thomas Bogendoerfer c2c20f
 	u8         cq_max_count[0x10];
Thomas Bogendoerfer c2c20f
 
Thomas Bogendoerfer c2c20f
-	u8         reserved_at_a0[0x18];
Thomas Bogendoerfer c2c20f
-	u8         c_eqn[0x8];
Thomas Bogendoerfer c2c20f
+	u8         c_eqn_or_apu_element[0x20];
Thomas Bogendoerfer c2c20f
 
Thomas Bogendoerfer c2c20f
 	u8         reserved_at_c0[0x3];
Thomas Bogendoerfer c2c20f
 	u8         log_page_size[0x5];