Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
This merge syncs with mlx5-next latest HW bits and layout updates for next features, in addition one patch that improves mlx5_create_auto_grouped_flow_table() API across all mlx5 users. * 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux: net/mlx5: Refactor mlx5_create_auto_grouped_flow_table net/mlx5e: Add discard counters per priority net/mlx5e: Expose FEC feilds and related capability bit net/mlx5: Add mlx5_ifc definitions for connection tracking support net/mlx5: Add copy header action struct layout net/mlx5: Expose resource dump register mapping net/mlx5: Add structures and defines for MIRC register net/mlx5: Read MCAM register groups 1 and 2 net/mlx5: Add structures layout for new MCAM access reg groups net/mlx5: Expose vDPA emulation device capabilities net/mlx5: Add Virtio Emulation related device capabilities Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
This commit is contained in:
@@ -1105,6 +1105,7 @@ enum mlx5_cap_type {
|
||||
MLX5_CAP_DEV_MEM,
|
||||
MLX5_CAP_RESERVED_16,
|
||||
MLX5_CAP_TLS,
|
||||
MLX5_CAP_VDPA_EMULATION = 0x13,
|
||||
MLX5_CAP_DEV_EVENT = 0x14,
|
||||
/* NUM OF CAP Types */
|
||||
MLX5_CAP_NUM
|
||||
@@ -1120,6 +1121,9 @@ enum mlx5_pcam_feature_groups {
|
||||
|
||||
enum mlx5_mcam_reg_groups {
|
||||
MLX5_MCAM_REGS_FIRST_128 = 0x0,
|
||||
MLX5_MCAM_REGS_0x9080_0x90FF = 0x1,
|
||||
MLX5_MCAM_REGS_0x9100_0x917F = 0x2,
|
||||
MLX5_MCAM_REGS_NUM = 0x3,
|
||||
};
|
||||
|
||||
enum mlx5_mcam_feature_groups {
|
||||
@@ -1268,7 +1272,16 @@ enum mlx5_qcam_feature_groups {
|
||||
MLX5_GET(pcam_reg, (mdev)->caps.pcam, port_access_reg_cap_mask.regs_5000_to_507f.reg)
|
||||
|
||||
#define MLX5_CAP_MCAM_REG(mdev, reg) \
|
||||
MLX5_GET(mcam_reg, (mdev)->caps.mcam, mng_access_reg_cap_mask.access_regs.reg)
|
||||
MLX5_GET(mcam_reg, (mdev)->caps.mcam[MLX5_MCAM_REGS_FIRST_128], \
|
||||
mng_access_reg_cap_mask.access_regs.reg)
|
||||
|
||||
#define MLX5_CAP_MCAM_REG1(mdev, reg) \
|
||||
MLX5_GET(mcam_reg, (mdev)->caps.mcam[MLX5_MCAM_REGS_0x9080_0x90FF], \
|
||||
mng_access_reg_cap_mask.access_regs1.reg)
|
||||
|
||||
#define MLX5_CAP_MCAM_REG2(mdev, reg) \
|
||||
MLX5_GET(mcam_reg, (mdev)->caps.mcam[MLX5_MCAM_REGS_0x9100_0x917F], \
|
||||
mng_access_reg_cap_mask.access_regs2.reg)
|
||||
|
||||
#define MLX5_CAP_MCAM_FEATURE(mdev, fld) \
|
||||
MLX5_GET(mcam_reg, (mdev)->caps.mcam, mng_feature_cap_mask.enhanced_features.fld)
|
||||
@@ -1297,6 +1310,14 @@ enum mlx5_qcam_feature_groups {
|
||||
#define MLX5_CAP_DEV_EVENT(mdev, cap)\
|
||||
MLX5_ADDR_OF(device_event_cap, (mdev)->caps.hca_cur[MLX5_CAP_DEV_EVENT], cap)
|
||||
|
||||
#define MLX5_CAP_DEV_VDPA_EMULATION(mdev, cap)\
|
||||
MLX5_GET(device_virtio_emulation_cap, \
|
||||
(mdev)->caps.hca_cur[MLX5_CAP_VDPA_EMULATION], cap)
|
||||
|
||||
#define MLX5_CAP64_DEV_VDPA_EMULATION(mdev, cap)\
|
||||
MLX5_GET64(device_virtio_emulation_cap, \
|
||||
(mdev)->caps.hca_cur[MLX5_CAP_VDPA_EMULATION], cap)
|
||||
|
||||
enum {
|
||||
MLX5_CMD_STAT_OK = 0x0,
|
||||
MLX5_CMD_STAT_INT_ERR = 0x1,
|
||||
|
@@ -145,6 +145,8 @@ enum {
|
||||
MLX5_REG_MCC = 0x9062,
|
||||
MLX5_REG_MCDA = 0x9063,
|
||||
MLX5_REG_MCAM = 0x907f,
|
||||
MLX5_REG_MIRC = 0x9162,
|
||||
MLX5_REG_RESOURCE_DUMP = 0xC000,
|
||||
};
|
||||
|
||||
enum mlx5_qpts_trust_state {
|
||||
@@ -684,7 +686,7 @@ struct mlx5_core_dev {
|
||||
u32 hca_cur[MLX5_CAP_NUM][MLX5_UN_SZ_DW(hca_cap_union)];
|
||||
u32 hca_max[MLX5_CAP_NUM][MLX5_UN_SZ_DW(hca_cap_union)];
|
||||
u32 pcam[MLX5_ST_SZ_DW(pcam_reg)];
|
||||
u32 mcam[MLX5_ST_SZ_DW(mcam_reg)];
|
||||
u32 mcam[MLX5_MCAM_REGS_NUM][MLX5_ST_SZ_DW(mcam_reg)];
|
||||
u32 fpga[MLX5_ST_SZ_DW(fpga_cap)];
|
||||
u32 qcam[MLX5_ST_SZ_DW(qcam_reg)];
|
||||
u8 embedded_cpu;
|
||||
|
@@ -145,25 +145,25 @@ mlx5_get_flow_vport_acl_namespace(struct mlx5_core_dev *dev,
|
||||
enum mlx5_flow_namespace_type type,
|
||||
int vport);
|
||||
|
||||
struct mlx5_flow_table *
|
||||
mlx5_create_auto_grouped_flow_table(struct mlx5_flow_namespace *ns,
|
||||
int prio,
|
||||
int num_flow_table_entries,
|
||||
int max_num_groups,
|
||||
u32 level,
|
||||
u32 flags);
|
||||
|
||||
struct mlx5_flow_table_attr {
|
||||
int prio;
|
||||
int max_fte;
|
||||
u32 level;
|
||||
u32 flags;
|
||||
|
||||
struct {
|
||||
int max_num_groups;
|
||||
} autogroup;
|
||||
};
|
||||
|
||||
struct mlx5_flow_table *
|
||||
mlx5_create_flow_table(struct mlx5_flow_namespace *ns,
|
||||
struct mlx5_flow_table_attr *ft_attr);
|
||||
|
||||
struct mlx5_flow_table *
|
||||
mlx5_create_auto_grouped_flow_table(struct mlx5_flow_namespace *ns,
|
||||
struct mlx5_flow_table_attr *ft_attr);
|
||||
|
||||
struct mlx5_flow_table *
|
||||
mlx5_create_vport_flow_table(struct mlx5_flow_namespace *ns,
|
||||
int prio,
|
||||
|
@@ -87,6 +87,7 @@ enum {
|
||||
enum {
|
||||
MLX5_GENERAL_OBJ_TYPES_CAP_SW_ICM = (1ULL << MLX5_OBJ_TYPE_SW_ICM),
|
||||
MLX5_GENERAL_OBJ_TYPES_CAP_GENEVE_TLV_OPT = (1ULL << 11),
|
||||
MLX5_GENERAL_OBJ_TYPES_CAP_VIRTIO_NET_Q = (1ULL << 13),
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -374,8 +375,17 @@ struct mlx5_ifc_flow_table_fields_supported_bits {
|
||||
u8 outer_esp_spi[0x1];
|
||||
u8 reserved_at_58[0x2];
|
||||
u8 bth_dst_qp[0x1];
|
||||
u8 reserved_at_5b[0x5];
|
||||
|
||||
u8 reserved_at_5b[0x25];
|
||||
u8 reserved_at_60[0x18];
|
||||
u8 metadata_reg_c_7[0x1];
|
||||
u8 metadata_reg_c_6[0x1];
|
||||
u8 metadata_reg_c_5[0x1];
|
||||
u8 metadata_reg_c_4[0x1];
|
||||
u8 metadata_reg_c_3[0x1];
|
||||
u8 metadata_reg_c_2[0x1];
|
||||
u8 metadata_reg_c_1[0x1];
|
||||
u8 metadata_reg_c_0[0x1];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_flow_table_prop_layout_bits {
|
||||
@@ -400,7 +410,8 @@ struct mlx5_ifc_flow_table_prop_layout_bits {
|
||||
u8 reformat_l3_tunnel_to_l2[0x1];
|
||||
u8 reformat_l2_to_l3_tunnel[0x1];
|
||||
u8 reformat_and_modify_action[0x1];
|
||||
u8 reserved_at_15[0x2];
|
||||
u8 ignore_flow_level[0x1];
|
||||
u8 reserved_at_16[0x1];
|
||||
u8 table_miss_action_domain[0x1];
|
||||
u8 termination_table[0x1];
|
||||
u8 reserved_at_19[0x7];
|
||||
@@ -721,7 +732,9 @@ enum {
|
||||
|
||||
struct mlx5_ifc_flow_table_eswitch_cap_bits {
|
||||
u8 fdb_to_vport_reg_c_id[0x8];
|
||||
u8 reserved_at_8[0xf];
|
||||
u8 reserved_at_8[0xd];
|
||||
u8 fdb_modify_header_fwd_to_table[0x1];
|
||||
u8 reserved_at_16[0x1];
|
||||
u8 flow_source[0x1];
|
||||
u8 reserved_at_18[0x2];
|
||||
u8 multi_fdb_encap[0x1];
|
||||
@@ -822,7 +835,9 @@ struct mlx5_ifc_qos_cap_bits {
|
||||
struct mlx5_ifc_debug_cap_bits {
|
||||
u8 core_dump_general[0x1];
|
||||
u8 core_dump_qp[0x1];
|
||||
u8 reserved_at_2[0x1e];
|
||||
u8 reserved_at_2[0x7];
|
||||
u8 resource_dump[0x1];
|
||||
u8 reserved_at_a[0x16];
|
||||
|
||||
u8 reserved_at_20[0x2];
|
||||
u8 stall_detect[0x1];
|
||||
@@ -953,6 +968,19 @@ struct mlx5_ifc_device_event_cap_bits {
|
||||
u8 user_unaffiliated_events[4][0x40];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_device_virtio_emulation_cap_bits {
|
||||
u8 reserved_at_0[0x20];
|
||||
|
||||
u8 reserved_at_20[0x13];
|
||||
u8 log_doorbell_stride[0x5];
|
||||
u8 reserved_at_38[0x3];
|
||||
u8 log_doorbell_bar_size[0x5];
|
||||
|
||||
u8 doorbell_bar_offset[0x40];
|
||||
|
||||
u8 reserved_at_80[0x780];
|
||||
};
|
||||
|
||||
enum {
|
||||
MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_1_BYTE = 0x0,
|
||||
MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_2_BYTES = 0x2,
|
||||
@@ -1753,6 +1781,132 @@ struct mlx5_ifc_resize_field_select_bits {
|
||||
u8 resize_field_select[0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_resource_dump_bits {
|
||||
u8 more_dump[0x1];
|
||||
u8 inline_dump[0x1];
|
||||
u8 reserved_at_2[0xa];
|
||||
u8 seq_num[0x4];
|
||||
u8 segment_type[0x10];
|
||||
|
||||
u8 reserved_at_20[0x10];
|
||||
u8 vhca_id[0x10];
|
||||
|
||||
u8 index1[0x20];
|
||||
|
||||
u8 index2[0x20];
|
||||
|
||||
u8 num_of_obj1[0x10];
|
||||
u8 num_of_obj2[0x10];
|
||||
|
||||
u8 reserved_at_a0[0x20];
|
||||
|
||||
u8 device_opaque[0x40];
|
||||
|
||||
u8 mkey[0x20];
|
||||
|
||||
u8 size[0x20];
|
||||
|
||||
u8 address[0x40];
|
||||
|
||||
u8 inline_data[52][0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_resource_dump_menu_record_bits {
|
||||
u8 reserved_at_0[0x4];
|
||||
u8 num_of_obj2_supports_active[0x1];
|
||||
u8 num_of_obj2_supports_all[0x1];
|
||||
u8 must_have_num_of_obj2[0x1];
|
||||
u8 support_num_of_obj2[0x1];
|
||||
u8 num_of_obj1_supports_active[0x1];
|
||||
u8 num_of_obj1_supports_all[0x1];
|
||||
u8 must_have_num_of_obj1[0x1];
|
||||
u8 support_num_of_obj1[0x1];
|
||||
u8 must_have_index2[0x1];
|
||||
u8 support_index2[0x1];
|
||||
u8 must_have_index1[0x1];
|
||||
u8 support_index1[0x1];
|
||||
u8 segment_type[0x10];
|
||||
|
||||
u8 segment_name[4][0x20];
|
||||
|
||||
u8 index1_name[4][0x20];
|
||||
|
||||
u8 index2_name[4][0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_resource_dump_segment_header_bits {
|
||||
u8 length_dw[0x10];
|
||||
u8 segment_type[0x10];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_resource_dump_command_segment_bits {
|
||||
struct mlx5_ifc_resource_dump_segment_header_bits segment_header;
|
||||
|
||||
u8 segment_called[0x10];
|
||||
u8 vhca_id[0x10];
|
||||
|
||||
u8 index1[0x20];
|
||||
|
||||
u8 index2[0x20];
|
||||
|
||||
u8 num_of_obj1[0x10];
|
||||
u8 num_of_obj2[0x10];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_resource_dump_error_segment_bits {
|
||||
struct mlx5_ifc_resource_dump_segment_header_bits segment_header;
|
||||
|
||||
u8 reserved_at_20[0x10];
|
||||
u8 syndrome_id[0x10];
|
||||
|
||||
u8 reserved_at_40[0x40];
|
||||
|
||||
u8 error[8][0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_resource_dump_info_segment_bits {
|
||||
struct mlx5_ifc_resource_dump_segment_header_bits segment_header;
|
||||
|
||||
u8 reserved_at_20[0x18];
|
||||
u8 dump_version[0x8];
|
||||
|
||||
u8 hw_version[0x20];
|
||||
|
||||
u8 fw_version[0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_resource_dump_menu_segment_bits {
|
||||
struct mlx5_ifc_resource_dump_segment_header_bits segment_header;
|
||||
|
||||
u8 reserved_at_20[0x10];
|
||||
u8 num_of_records[0x10];
|
||||
|
||||
struct mlx5_ifc_resource_dump_menu_record_bits record[0];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_resource_dump_resource_segment_bits {
|
||||
struct mlx5_ifc_resource_dump_segment_header_bits segment_header;
|
||||
|
||||
u8 reserved_at_20[0x20];
|
||||
|
||||
u8 index1[0x20];
|
||||
|
||||
u8 index2[0x20];
|
||||
|
||||
u8 payload[0][0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_resource_dump_terminate_segment_bits {
|
||||
struct mlx5_ifc_resource_dump_segment_header_bits segment_header;
|
||||
};
|
||||
|
||||
struct mlx5_ifc_menu_resource_dump_response_bits {
|
||||
struct mlx5_ifc_resource_dump_info_segment_bits info;
|
||||
struct mlx5_ifc_resource_dump_command_segment_bits cmd;
|
||||
struct mlx5_ifc_resource_dump_menu_segment_bits menu;
|
||||
struct mlx5_ifc_resource_dump_terminate_segment_bits terminate;
|
||||
};
|
||||
|
||||
enum {
|
||||
MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_PERIOD = 0x1,
|
||||
MLX5_MODIFY_FIELD_SELECT_MODIFY_FIELD_SELECT_CQ_MAX_COUNT = 0x2,
|
||||
@@ -2026,7 +2180,9 @@ struct mlx5_ifc_eth_per_prio_grp_data_layout_bits {
|
||||
|
||||
u8 rx_pause_transition_low[0x20];
|
||||
|
||||
u8 reserved_at_3c0[0x40];
|
||||
u8 rx_discards_high[0x20];
|
||||
|
||||
u8 rx_discards_low[0x20];
|
||||
|
||||
u8 device_stall_minor_watermark_cnt_high[0x20];
|
||||
|
||||
@@ -2751,6 +2907,7 @@ union mlx5_ifc_hca_cap_union_bits {
|
||||
struct mlx5_ifc_fpga_cap_bits fpga_cap;
|
||||
struct mlx5_ifc_tls_cap_bits tls_cap;
|
||||
struct mlx5_ifc_device_mem_cap_bits device_mem_cap;
|
||||
struct mlx5_ifc_device_virtio_emulation_cap_bits virtio_emulation_cap;
|
||||
u8 reserved_at_0[0x8000];
|
||||
};
|
||||
|
||||
@@ -3998,7 +4155,8 @@ struct mlx5_ifc_set_fte_in_bits {
|
||||
u8 reserved_at_a0[0x8];
|
||||
u8 table_id[0x18];
|
||||
|
||||
u8 reserved_at_c0[0x18];
|
||||
u8 ignore_flow_level[0x1];
|
||||
u8 reserved_at_c1[0x17];
|
||||
u8 modify_enable_mask[0x8];
|
||||
|
||||
u8 reserved_at_e0[0x20];
|
||||
@@ -5466,15 +5624,32 @@ struct mlx5_ifc_add_action_in_bits {
|
||||
u8 data[0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_copy_action_in_bits {
|
||||
u8 action_type[0x4];
|
||||
u8 src_field[0xc];
|
||||
u8 reserved_at_10[0x3];
|
||||
u8 src_offset[0x5];
|
||||
u8 reserved_at_18[0x3];
|
||||
u8 length[0x5];
|
||||
|
||||
u8 reserved_at_20[0x4];
|
||||
u8 dst_field[0xc];
|
||||
u8 reserved_at_30[0x3];
|
||||
u8 dst_offset[0x5];
|
||||
u8 reserved_at_38[0x8];
|
||||
};
|
||||
|
||||
union mlx5_ifc_set_action_in_add_action_in_auto_bits {
|
||||
struct mlx5_ifc_set_action_in_bits set_action_in;
|
||||
struct mlx5_ifc_add_action_in_bits add_action_in;
|
||||
struct mlx5_ifc_copy_action_in_bits copy_action_in;
|
||||
u8 reserved_at_0[0x40];
|
||||
};
|
||||
|
||||
enum {
|
||||
MLX5_ACTION_TYPE_SET = 0x1,
|
||||
MLX5_ACTION_TYPE_ADD = 0x2,
|
||||
MLX5_ACTION_TYPE_COPY = 0x3,
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -5510,6 +5685,8 @@ enum {
|
||||
MLX5_ACTION_IN_FIELD_METADATA_REG_C_3 = 0x54,
|
||||
MLX5_ACTION_IN_FIELD_METADATA_REG_C_4 = 0x55,
|
||||
MLX5_ACTION_IN_FIELD_METADATA_REG_C_5 = 0x56,
|
||||
MLX5_ACTION_IN_FIELD_METADATA_REG_C_6 = 0x57,
|
||||
MLX5_ACTION_IN_FIELD_METADATA_REG_C_7 = 0x58,
|
||||
MLX5_ACTION_IN_FIELD_OUT_TCP_SEQ_NUM = 0x59,
|
||||
MLX5_ACTION_IN_FIELD_OUT_TCP_ACK_NUM = 0x5B,
|
||||
};
|
||||
@@ -8406,6 +8583,18 @@ struct mlx5_ifc_pplm_reg_bits {
|
||||
u8 fec_override_admin_50g[0x4];
|
||||
u8 fec_override_admin_25g[0x4];
|
||||
u8 fec_override_admin_10g_40g[0x4];
|
||||
|
||||
u8 fec_override_cap_400g_8x[0x10];
|
||||
u8 fec_override_cap_200g_4x[0x10];
|
||||
|
||||
u8 fec_override_cap_100g_2x[0x10];
|
||||
u8 fec_override_cap_50g_1x[0x10];
|
||||
|
||||
u8 fec_override_admin_400g_8x[0x10];
|
||||
u8 fec_override_admin_200g_4x[0x10];
|
||||
|
||||
u8 fec_override_admin_100g_2x[0x10];
|
||||
u8 fec_override_admin_50g_1x[0x10];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_ppcnt_reg_bits {
|
||||
@@ -8732,7 +8921,9 @@ struct mlx5_ifc_mpegc_reg_bits {
|
||||
};
|
||||
|
||||
struct mlx5_ifc_pcam_enhanced_features_bits {
|
||||
u8 reserved_at_0[0x6d];
|
||||
u8 reserved_at_0[0x68];
|
||||
u8 fec_50G_per_lane_in_pplm[0x1];
|
||||
u8 reserved_at_69[0x4];
|
||||
u8 rx_icrc_encapsulated_counter[0x1];
|
||||
u8 reserved_at_6e[0x4];
|
||||
u8 ptys_extended_ethernet[0x1];
|
||||
@@ -8817,6 +9008,28 @@ struct mlx5_ifc_mcam_access_reg_bits {
|
||||
u8 regs_31_to_0[0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_mcam_access_reg_bits1 {
|
||||
u8 regs_127_to_96[0x20];
|
||||
|
||||
u8 regs_95_to_64[0x20];
|
||||
|
||||
u8 regs_63_to_32[0x20];
|
||||
|
||||
u8 regs_31_to_0[0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_mcam_access_reg_bits2 {
|
||||
u8 regs_127_to_99[0x1d];
|
||||
u8 mirc[0x1];
|
||||
u8 regs_97_to_96[0x2];
|
||||
|
||||
u8 regs_95_to_64[0x20];
|
||||
|
||||
u8 regs_63_to_32[0x20];
|
||||
|
||||
u8 regs_31_to_0[0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_mcam_reg_bits {
|
||||
u8 reserved_at_0[0x8];
|
||||
u8 feature_group[0x8];
|
||||
@@ -8827,6 +9040,8 @@ struct mlx5_ifc_mcam_reg_bits {
|
||||
|
||||
union {
|
||||
struct mlx5_ifc_mcam_access_reg_bits access_regs;
|
||||
struct mlx5_ifc_mcam_access_reg_bits1 access_regs1;
|
||||
struct mlx5_ifc_mcam_access_reg_bits2 access_regs2;
|
||||
u8 reserved_at_0[0x80];
|
||||
} mng_access_reg_cap_mask;
|
||||
|
||||
@@ -9432,6 +9647,13 @@ struct mlx5_ifc_mcda_reg_bits {
|
||||
u8 data[0][0x20];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_mirc_reg_bits {
|
||||
u8 reserved_at_0[0x18];
|
||||
u8 status_code[0x8];
|
||||
|
||||
u8 reserved_at_20[0x20];
|
||||
};
|
||||
|
||||
union mlx5_ifc_ports_control_registers_document_bits {
|
||||
struct mlx5_ifc_bufferx_reg_bits bufferx_reg;
|
||||
struct mlx5_ifc_eth_2819_cntrs_grp_data_layout_bits eth_2819_cntrs_grp_data_layout;
|
||||
@@ -9487,6 +9709,7 @@ union mlx5_ifc_ports_control_registers_document_bits {
|
||||
struct mlx5_ifc_mcqi_reg_bits mcqi_reg;
|
||||
struct mlx5_ifc_mcc_reg_bits mcc_reg;
|
||||
struct mlx5_ifc_mcda_reg_bits mcda_reg;
|
||||
struct mlx5_ifc_mirc_reg_bits mirc_reg;
|
||||
u8 reserved_at_0[0x60e0];
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user