Generally the IFC file should contain enums for the fields it
defines. Move the ones in device.h that are relevant to the VFIO
selftests over to the IFC file:

  wqe_ctrl_seg_bits.opcode: all MLX5_OPCODE_* WQE opcodes
  wqe_ctrl_seg_bits.ce: new MLX5_WQE_CE_* completion/event modes
  cqe64_bits.opcode: all MLX5_CQE_* CQE opcode values
  eqe_bits.event_type: enum mlx5_event (all event types)
  cmd_out_bits.status: all MLX5_CMD_STAT_* status codes
  query_hca_cap_in_bits.op_mod: enum mlx5_cap_mode

Tidy MLX5_PCI_CMD_XPORT which is an alias of
MLX5_CMD_QUEUE_ENTRY_TYPE_PCIE_CMD_IF_TRANSPORT.

No functional change. All existing users of device.h and cq.h
continue to see these constants through the include chain.

Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Jason Gunthorpe <[email protected]>
---
 include/linux/mlx5/cq.h       |  10 ---
 include/linux/mlx5/device.h   | 114 +------------------------------
 include/linux/mlx5/mlx5_ifc.h | 123 ++++++++++++++++++++++++++++++++++
 3 files changed, 124 insertions(+), 123 deletions(-)

diff --git a/include/linux/mlx5/cq.h b/include/linux/mlx5/cq.h
index 9d47cdc727ad0d..a1c14479e462c2 100644
--- a/include/linux/mlx5/cq.h
+++ b/include/linux/mlx5/cq.h
@@ -81,16 +81,6 @@ enum {
 
 enum {
        MLX5_CQE_OWNER_MASK     = 1,
-       MLX5_CQE_REQ            = 0,
-       MLX5_CQE_RESP_WR_IMM    = 1,
-       MLX5_CQE_RESP_SEND      = 2,
-       MLX5_CQE_RESP_SEND_IMM  = 3,
-       MLX5_CQE_RESP_SEND_INV  = 4,
-       MLX5_CQE_RESIZE_CQ      = 5,
-       MLX5_CQE_SIG_ERR        = 12,
-       MLX5_CQE_REQ_ERR        = 13,
-       MLX5_CQE_RESP_ERR       = 14,
-       MLX5_CQE_INVALID        = 15,
 };
 
 enum {
diff --git a/include/linux/mlx5/device.h b/include/linux/mlx5/device.h
index 07a25f26429213..c739a1f578dc44 100644
--- a/include/linux/mlx5/device.h
+++ b/include/linux/mlx5/device.h
@@ -172,7 +172,7 @@ enum mlx5_inline_modes {
 enum {
        MLX5_MAX_COMMANDS               = 32,
        MLX5_CMD_DATA_BLOCK_SIZE        = 512,
-       MLX5_PCI_CMD_XPORT              = 7,
+       MLX5_PCI_CMD_XPORT              = 
MLX5_CMD_QUEUE_ENTRY_TYPE_PCIE_CMD_IF_TRANSPORT,
        MLX5_MKEY_BSF_OCTO_SIZE         = 4,
        MLX5_MAX_PSVS                   = 4,
 };
@@ -308,63 +308,6 @@ enum {
        MLX5_EVENT_QUEUE_TYPE_DCT = 6,
 };
 
-/* mlx5 components can subscribe to any one of these events via
- * mlx5_eq_notifier_register API.
- */
-enum mlx5_event {
-       /* Special value to subscribe to any event */
-       MLX5_EVENT_TYPE_NOTIFY_ANY         = 0x0,
-       /* HW events enum start: comp events are not subscribable */
-       MLX5_EVENT_TYPE_COMP               = 0x0,
-       /* HW Async events enum start: subscribable events */
-       MLX5_EVENT_TYPE_PATH_MIG           = 0x01,
-       MLX5_EVENT_TYPE_COMM_EST           = 0x02,
-       MLX5_EVENT_TYPE_SQ_DRAINED         = 0x03,
-       MLX5_EVENT_TYPE_SRQ_LAST_WQE       = 0x13,
-       MLX5_EVENT_TYPE_SRQ_RQ_LIMIT       = 0x14,
-
-       MLX5_EVENT_TYPE_CQ_ERROR           = 0x04,
-       MLX5_EVENT_TYPE_WQ_CATAS_ERROR     = 0x05,
-       MLX5_EVENT_TYPE_PATH_MIG_FAILED    = 0x07,
-       MLX5_EVENT_TYPE_WQ_INVAL_REQ_ERROR = 0x10,
-       MLX5_EVENT_TYPE_WQ_ACCESS_ERROR    = 0x11,
-       MLX5_EVENT_TYPE_SRQ_CATAS_ERROR    = 0x12,
-       MLX5_EVENT_TYPE_OBJECT_CHANGE      = 0x27,
-
-       MLX5_EVENT_TYPE_INTERNAL_ERROR     = 0x08,
-       MLX5_EVENT_TYPE_PORT_CHANGE        = 0x09,
-       MLX5_EVENT_TYPE_GPIO_EVENT         = 0x15,
-       MLX5_EVENT_TYPE_PORT_MODULE_EVENT  = 0x16,
-       MLX5_EVENT_TYPE_TEMP_WARN_EVENT    = 0x17,
-       MLX5_EVENT_TYPE_XRQ_ERROR          = 0x18,
-       MLX5_EVENT_TYPE_REMOTE_CONFIG      = 0x19,
-       MLX5_EVENT_TYPE_GENERAL_EVENT      = 0x22,
-       MLX5_EVENT_TYPE_MONITOR_COUNTER    = 0x24,
-       MLX5_EVENT_TYPE_PPS_EVENT          = 0x25,
-
-       MLX5_EVENT_TYPE_DB_BF_CONGESTION   = 0x1a,
-       MLX5_EVENT_TYPE_STALL_EVENT        = 0x1b,
-
-       MLX5_EVENT_TYPE_CMD                = 0x0a,
-       MLX5_EVENT_TYPE_PAGE_REQUEST       = 0xb,
-
-       MLX5_EVENT_TYPE_PAGE_FAULT         = 0xc,
-       MLX5_EVENT_TYPE_NIC_VPORT_CHANGE   = 0xd,
-
-       MLX5_EVENT_TYPE_ESW_FUNCTIONS_CHANGED = 0xe,
-       MLX5_EVENT_TYPE_VHCA_STATE_CHANGE = 0xf,
-
-       MLX5_EVENT_TYPE_DCT_DRAINED        = 0x1c,
-       MLX5_EVENT_TYPE_DCT_KEY_VIOLATION  = 0x1d,
-
-       MLX5_EVENT_TYPE_FPGA_ERROR         = 0x20,
-       MLX5_EVENT_TYPE_FPGA_QP_ERROR      = 0x21,
-
-       MLX5_EVENT_TYPE_DEVICE_TRACER      = 0x26,
-
-       MLX5_EVENT_TYPE_MAX                = 0x100,
-};
-
 enum mlx5_driver_event {
        MLX5_DRIVER_EVENT_TYPE_TRAP = 0,
        MLX5_DRIVER_EVENT_UPLINK_NETDEV,
@@ -420,22 +363,6 @@ enum {
 };
 
 enum {
-       MLX5_OPCODE_NOP                 = 0x00,
-       MLX5_OPCODE_SEND_INVAL          = 0x01,
-       MLX5_OPCODE_RDMA_WRITE          = 0x08,
-       MLX5_OPCODE_RDMA_WRITE_IMM      = 0x09,
-       MLX5_OPCODE_SEND                = 0x0a,
-       MLX5_OPCODE_SEND_IMM            = 0x0b,
-       MLX5_OPCODE_LSO                 = 0x0e,
-       MLX5_OPCODE_RDMA_READ           = 0x10,
-       MLX5_OPCODE_ATOMIC_CS           = 0x11,
-       MLX5_OPCODE_ATOMIC_FA           = 0x12,
-       MLX5_OPCODE_ATOMIC_MASKED_CS    = 0x14,
-       MLX5_OPCODE_ATOMIC_MASKED_FA    = 0x15,
-       MLX5_OPCODE_BIND_MW             = 0x18,
-       MLX5_OPCODE_CONFIG_CMD          = 0x1f,
-       MLX5_OPCODE_ENHANCED_MPSW       = 0x29,
-
        MLX5_RECV_OPCODE_RDMA_WRITE_IMM = 0x00,
        MLX5_RECV_OPCODE_SEND           = 0x01,
        MLX5_RECV_OPCODE_SEND_IMM       = 0x02,
@@ -443,19 +370,6 @@ enum {
 
        MLX5_CQE_OPCODE_ERROR           = 0x1e,
        MLX5_CQE_OPCODE_RESIZE          = 0x16,
-
-       MLX5_OPCODE_SET_PSV             = 0x20,
-       MLX5_OPCODE_GET_PSV             = 0x21,
-       MLX5_OPCODE_CHECK_PSV           = 0x22,
-       MLX5_OPCODE_DUMP                = 0x23,
-       MLX5_OPCODE_RGET_PSV            = 0x26,
-       MLX5_OPCODE_RCHECK_PSV          = 0x27,
-
-       MLX5_OPCODE_UMR                 = 0x25,
-
-       MLX5_OPCODE_FLOW_TBL_ACCESS     = 0x2c,
-
-       MLX5_OPCODE_ACCESS_ASO          = 0x2d,
 };
 
 enum {
@@ -1223,12 +1137,6 @@ enum mlx5_flex_parser_protos {
 
 /* MLX5 DEV CAPs */
 
-/* TODO: EAT.ME */
-enum mlx5_cap_mode {
-       HCA_CAP_OPMOD_GET_MAX   = 0,
-       HCA_CAP_OPMOD_GET_CUR   = 1,
-};
-
 /* Any new cap addition must update mlx5_hca_caps_alloc() to allocate
  * capability memory.
  */
@@ -1506,26 +1414,6 @@ enum mlx5_qcam_feature_groups {
 #define MLX5_CAP_PSP(mdev, cap)\
        MLX5_GET(psp_cap, (mdev)->caps.hca[MLX5_CAP_PSP]->cur, cap)
 
-enum {
-       MLX5_CMD_STAT_OK                        = 0x0,
-       MLX5_CMD_STAT_INT_ERR                   = 0x1,
-       MLX5_CMD_STAT_BAD_OP_ERR                = 0x2,
-       MLX5_CMD_STAT_BAD_PARAM_ERR             = 0x3,
-       MLX5_CMD_STAT_BAD_SYS_STATE_ERR         = 0x4,
-       MLX5_CMD_STAT_BAD_RES_ERR               = 0x5,
-       MLX5_CMD_STAT_RES_BUSY                  = 0x6,
-       MLX5_CMD_STAT_NOT_READY                 = 0x7,
-       MLX5_CMD_STAT_LIM_ERR                   = 0x8,
-       MLX5_CMD_STAT_BAD_RES_STATE_ERR         = 0x9,
-       MLX5_CMD_STAT_IX_ERR                    = 0xa,
-       MLX5_CMD_STAT_NO_RES_ERR                = 0xf,
-       MLX5_CMD_STAT_BAD_INP_LEN_ERR           = 0x50,
-       MLX5_CMD_STAT_BAD_OUTP_LEN_ERR          = 0x51,
-       MLX5_CMD_STAT_BAD_QP_STATE_ERR          = 0x10,
-       MLX5_CMD_STAT_BAD_PKT_ERR               = 0x30,
-       MLX5_CMD_STAT_BAD_SIZE_OUTS_CQES_ERR    = 0x40,
-};
-
 enum {
        MLX5_IEEE_802_3_COUNTERS_GROUP        = 0x0,
        MLX5_RFC_2863_COUNTERS_GROUP          = 0x1,
diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h
index 80ae6aeaf535b0..9976bc80a41b33 100644
--- a/include/linux/mlx5/mlx5_ifc.h
+++ b/include/linux/mlx5/mlx5_ifc.h
@@ -5991,6 +5991,39 @@ struct mlx5_ifc_wqe_ctrl_seg_bits {
        u8         imm[0x20];
 };
 
+/* Values for wqe_ctrl_seg_bits.opcode */
+enum {
+       MLX5_OPCODE_NOP                 = 0x00,
+       MLX5_OPCODE_SEND_INVAL          = 0x01,
+       MLX5_OPCODE_RDMA_WRITE          = 0x08,
+       MLX5_OPCODE_RDMA_WRITE_IMM      = 0x09,
+       MLX5_OPCODE_SEND                = 0x0a,
+       MLX5_OPCODE_SEND_IMM            = 0x0b,
+       MLX5_OPCODE_LSO                 = 0x0e,
+       MLX5_OPCODE_RDMA_READ           = 0x10,
+       MLX5_OPCODE_ATOMIC_CS           = 0x11,
+       MLX5_OPCODE_ATOMIC_FA           = 0x12,
+       MLX5_OPCODE_ATOMIC_MASKED_CS    = 0x14,
+       MLX5_OPCODE_ATOMIC_MASKED_FA    = 0x15,
+       MLX5_OPCODE_BIND_MW             = 0x18,
+       MLX5_OPCODE_CONFIG_CMD          = 0x1f,
+       MLX5_OPCODE_SET_PSV             = 0x20,
+       MLX5_OPCODE_GET_PSV             = 0x21,
+       MLX5_OPCODE_CHECK_PSV           = 0x22,
+       MLX5_OPCODE_DUMP                = 0x23,
+       MLX5_OPCODE_UMR                 = 0x25,
+       MLX5_OPCODE_RGET_PSV            = 0x26,
+       MLX5_OPCODE_RCHECK_PSV          = 0x27,
+       MLX5_OPCODE_ENHANCED_MPSW       = 0x29,
+       MLX5_OPCODE_FLOW_TBL_ACCESS     = 0x2c,
+       MLX5_OPCODE_ACCESS_ASO          = 0x2d,
+};
+
+/* Values for wqe_ctrl_seg_bits.ce */
+enum {
+       MLX5_WQE_CE_CQE_ALWAYS          = 2,
+};
+
 struct mlx5_ifc_wqe_raddr_seg_bits {
        u8         raddr[0x40];
 
@@ -6026,6 +6059,20 @@ struct mlx5_ifc_cqe64_bits {
        u8         owner[0x1];
 };
 
+/* Values for cqe64_bits.opcode */
+enum {
+       MLX5_CQE_REQ            = 0,
+       MLX5_CQE_RESP_WR_IMM    = 1,
+       MLX5_CQE_RESP_SEND      = 2,
+       MLX5_CQE_RESP_SEND_IMM  = 3,
+       MLX5_CQE_RESP_SEND_INV  = 4,
+       MLX5_CQE_RESIZE_CQ      = 5,
+       MLX5_CQE_SIG_ERR        = 12,
+       MLX5_CQE_REQ_ERR        = 13,
+       MLX5_CQE_RESP_ERR       = 14,
+       MLX5_CQE_INVALID        = 15,
+};
+
 struct mlx5_ifc_qp_context_extension_bits {
        u8         reserved_at_0[0x60];
 
@@ -6522,6 +6569,12 @@ struct mlx5_ifc_query_hca_cap_in_bits {
        u8         reserved_at_60[0x20];
 };
 
+/* Values for query_hca_cap_in_bits.op_mod */
+enum mlx5_cap_mode {
+       HCA_CAP_OPMOD_GET_MAX   = 0,
+       HCA_CAP_OPMOD_GET_CUR   = 1,
+};
+
 struct mlx5_ifc_other_hca_cap_bits {
        u8         roce[0x1];
        u8         reserved_at_1[0x27f];
@@ -11310,6 +11363,55 @@ struct mlx5_ifc_eqe_bits {
        u8         owner[0x1];
 };
 
+/* Values for eqe_bits.event_type */
+enum mlx5_event {
+       /* Special value to subscribe to any event */
+       MLX5_EVENT_TYPE_NOTIFY_ANY         = 0x0,
+       /* HW events enum start: comp events are not subscribable */
+       MLX5_EVENT_TYPE_COMP               = 0x0,
+       /* HW Async events enum start: subscribable events */
+       MLX5_EVENT_TYPE_PATH_MIG           = 0x01,
+       MLX5_EVENT_TYPE_COMM_EST           = 0x02,
+       MLX5_EVENT_TYPE_SQ_DRAINED         = 0x03,
+       MLX5_EVENT_TYPE_SRQ_LAST_WQE       = 0x13,
+       MLX5_EVENT_TYPE_SRQ_RQ_LIMIT       = 0x14,
+
+       MLX5_EVENT_TYPE_CQ_ERROR           = 0x04,
+       MLX5_EVENT_TYPE_WQ_CATAS_ERROR     = 0x05,
+       MLX5_EVENT_TYPE_PATH_MIG_FAILED    = 0x07,
+       MLX5_EVENT_TYPE_WQ_INVAL_REQ_ERROR = 0x10,
+       MLX5_EVENT_TYPE_WQ_ACCESS_ERROR    = 0x11,
+       MLX5_EVENT_TYPE_SRQ_CATAS_ERROR    = 0x12,
+       MLX5_EVENT_TYPE_OBJECT_CHANGE      = 0x27,
+
+       MLX5_EVENT_TYPE_INTERNAL_ERROR     = 0x08,
+       MLX5_EVENT_TYPE_PORT_CHANGE        = 0x09,
+       MLX5_EVENT_TYPE_CMD                = 0x0a,
+       MLX5_EVENT_TYPE_PAGE_REQUEST       = 0x0b,
+       MLX5_EVENT_TYPE_PAGE_FAULT         = 0x0c,
+       MLX5_EVENT_TYPE_NIC_VPORT_CHANGE   = 0x0d,
+       MLX5_EVENT_TYPE_ESW_FUNCTIONS_CHANGED = 0x0e,
+       MLX5_EVENT_TYPE_VHCA_STATE_CHANGE  = 0x0f,
+       MLX5_EVENT_TYPE_GPIO_EVENT         = 0x15,
+       MLX5_EVENT_TYPE_PORT_MODULE_EVENT  = 0x16,
+       MLX5_EVENT_TYPE_TEMP_WARN_EVENT    = 0x17,
+       MLX5_EVENT_TYPE_XRQ_ERROR          = 0x18,
+       MLX5_EVENT_TYPE_REMOTE_CONFIG      = 0x19,
+       MLX5_EVENT_TYPE_DB_BF_CONGESTION   = 0x1a,
+       MLX5_EVENT_TYPE_STALL_EVENT        = 0x1b,
+       MLX5_EVENT_TYPE_DCT_DRAINED        = 0x1c,
+       MLX5_EVENT_TYPE_DCT_KEY_VIOLATION  = 0x1d,
+       MLX5_EVENT_TYPE_FPGA_ERROR         = 0x20,
+       MLX5_EVENT_TYPE_FPGA_QP_ERROR      = 0x21,
+       MLX5_EVENT_TYPE_GENERAL_EVENT      = 0x22,
+       MLX5_EVENT_TYPE_MONITOR_COUNTER    = 0x24,
+       MLX5_EVENT_TYPE_PPS_EVENT          = 0x25,
+       MLX5_EVENT_TYPE_DEVICE_TRACER      = 0x26,
+
+       MLX5_EVENT_TYPE_MAX                = 0x100,
+};
+
+/* Values for cmd_queue_entry_bits.type */
 enum {
        MLX5_CMD_QUEUE_ENTRY_TYPE_PCIE_CMD_IF_TRANSPORT  = 0x7,
 };
@@ -11352,6 +11454,27 @@ struct mlx5_ifc_cmd_out_bits {
        u8         command_output[0x20];
 };
 
+/* Values for cmd_out_bits.status */
+enum {
+       MLX5_CMD_STAT_OK                        = 0x0,
+       MLX5_CMD_STAT_INT_ERR                   = 0x1,
+       MLX5_CMD_STAT_BAD_OP_ERR                = 0x2,
+       MLX5_CMD_STAT_BAD_PARAM_ERR             = 0x3,
+       MLX5_CMD_STAT_BAD_SYS_STATE_ERR         = 0x4,
+       MLX5_CMD_STAT_BAD_RES_ERR               = 0x5,
+       MLX5_CMD_STAT_RES_BUSY                  = 0x6,
+       MLX5_CMD_STAT_NOT_READY                 = 0x7,
+       MLX5_CMD_STAT_LIM_ERR                   = 0x8,
+       MLX5_CMD_STAT_BAD_RES_STATE_ERR         = 0x9,
+       MLX5_CMD_STAT_IX_ERR                    = 0xa,
+       MLX5_CMD_STAT_NO_RES_ERR                = 0xf,
+       MLX5_CMD_STAT_BAD_QP_STATE_ERR          = 0x10,
+       MLX5_CMD_STAT_BAD_PKT_ERR               = 0x30,
+       MLX5_CMD_STAT_BAD_SIZE_OUTS_CQES_ERR    = 0x40,
+       MLX5_CMD_STAT_BAD_INP_LEN_ERR           = 0x50,
+       MLX5_CMD_STAT_BAD_OUTP_LEN_ERR          = 0x51,
+};
+
 struct mlx5_ifc_cmd_in_bits {
        u8         opcode[0x10];
        u8         reserved_at_10[0x10];
-- 
2.43.0


Reply via email to