@@ -49,6 +49,7 @@ enum mlx5dv_context_flags {
MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED = (1 << 2), /* Multi packet WQE is allowed */
MLX5DV_CONTEXT_FLAGS_ENHANCED_MPW = (1 << 3), /* Enhanced multi packet WQE is supported or not */
MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP = (1 << 4), /* Support CQE 128B compression */
+ MLX5DV_CONTEXT_FLAGS_CQE_128B_PAD = (1 << 5), /* Support CQE 128B padding */
.in -8
};
@@ -281,6 +281,7 @@ enum mlx5_mpw_caps {
enum mlx5_query_dev_resp_flags {
MLX5_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0,
+ MLX5_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD = 1 << 1,
};
struct mlx5_query_device_ex_resp {
@@ -625,6 +625,9 @@ int mlx5dv_query_device(struct ibv_context *ctx_in,
if (mctx->vendor_cap_flags & MLX5_VENDOR_CAP_FLAGS_CQE_128B_COMP)
attrs_out->flags |= MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP;
+ if (mctx->vendor_cap_flags & MLX5_VENDOR_CAP_FLAGS_CQE_128B_PAD)
+ attrs_out->flags |= MLX5DV_CONTEXT_FLAGS_CQE_128B_PAD;
+
if (attrs_out->comp_mask & MLX5DV_CONTEXT_MASK_CQE_COMPRESION) {
attrs_out->cqe_comp_caps = mctx->cqe_comp_caps;
comp_mask_out |= MLX5DV_CONTEXT_MASK_CQE_COMPRESION;
@@ -194,6 +194,7 @@ enum mlx5_vendor_cap_flags {
MLX5_VENDOR_CAP_FLAGS_MPW_ALLOWED = 1 << 1,
MLX5_VENDOR_CAP_FLAGS_ENHANCED_MPW = 1 << 2,
MLX5_VENDOR_CAP_FLAGS_CQE_128B_COMP = 1 << 3,
+ MLX5_VENDOR_CAP_FLAGS_CQE_128B_PAD = 1 << 4,
};
enum {
@@ -93,6 +93,7 @@ enum mlx5dv_context_flags {
MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED = (1 << 2),
MLX5DV_CONTEXT_FLAGS_ENHANCED_MPW = (1 << 3),
MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP = (1 << 4), /* Support CQE 128B compression */
+ MLX5DV_CONTEXT_FLAGS_CQE_128B_PAD = (1 << 5), /* Support CQE 128B padding */
};
enum mlx5dv_cq_init_attr_mask {
@@ -2137,6 +2137,9 @@ int mlx5_query_device_ex(struct ibv_context *context,
if (resp.flags & MLX5_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP)
mctx->vendor_cap_flags |= MLX5_VENDOR_CAP_FLAGS_CQE_128B_COMP;
+ if (resp.flags & MLX5_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD)
+ mctx->vendor_cap_flags |= MLX5_VENDOR_CAP_FLAGS_CQE_128B_PAD;
+
major = (raw_fw_ver >> 32) & 0xffff;
minor = (raw_fw_ver >> 16) & 0xffff;
sub_minor = raw_fw_ver & 0xffff;