|
@@ -162,6 +162,7 @@ static void dump_dev_cap_flags2(struct mlx4_dev *dev, u64 flags)
|
|
[35] = "Diag counters per port",
|
|
[35] = "Diag counters per port",
|
|
[36] = "QinQ VST mode support",
|
|
[36] = "QinQ VST mode support",
|
|
[37] = "sl to vl mapping table change event support",
|
|
[37] = "sl to vl mapping table change event support",
|
|
|
|
+ [38] = "user MAC support",
|
|
};
|
|
};
|
|
int i;
|
|
int i;
|
|
|
|
|
|
@@ -778,6 +779,7 @@ int mlx4_QUERY_DEV_CAP(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
|
|
#define QUERY_DEV_CAP_MAX_DESC_SZ_SQ_OFFSET 0x52
|
|
#define QUERY_DEV_CAP_MAX_DESC_SZ_SQ_OFFSET 0x52
|
|
#define QUERY_DEV_CAP_MAX_SG_RQ_OFFSET 0x55
|
|
#define QUERY_DEV_CAP_MAX_SG_RQ_OFFSET 0x55
|
|
#define QUERY_DEV_CAP_MAX_DESC_SZ_RQ_OFFSET 0x56
|
|
#define QUERY_DEV_CAP_MAX_DESC_SZ_RQ_OFFSET 0x56
|
|
|
|
+#define QUERY_DEV_CAP_USER_MAC_EN_OFFSET 0x5C
|
|
#define QUERY_DEV_CAP_SVLAN_BY_QP_OFFSET 0x5D
|
|
#define QUERY_DEV_CAP_SVLAN_BY_QP_OFFSET 0x5D
|
|
#define QUERY_DEV_CAP_MAX_QP_MCG_OFFSET 0x61
|
|
#define QUERY_DEV_CAP_MAX_QP_MCG_OFFSET 0x61
|
|
#define QUERY_DEV_CAP_RSVD_MCG_OFFSET 0x62
|
|
#define QUERY_DEV_CAP_RSVD_MCG_OFFSET 0x62
|
|
@@ -949,6 +951,9 @@ int mlx4_QUERY_DEV_CAP(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
|
|
MLX4_GET(size, outbox, QUERY_DEV_CAP_MAX_DESC_SZ_SQ_OFFSET);
|
|
MLX4_GET(size, outbox, QUERY_DEV_CAP_MAX_DESC_SZ_SQ_OFFSET);
|
|
dev_cap->max_sq_desc_sz = size;
|
|
dev_cap->max_sq_desc_sz = size;
|
|
|
|
|
|
|
|
+ MLX4_GET(field, outbox, QUERY_DEV_CAP_USER_MAC_EN_OFFSET);
|
|
|
|
+ if (field & (1 << 2))
|
|
|
|
+ dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_USER_MAC_EN;
|
|
MLX4_GET(field, outbox, QUERY_DEV_CAP_SVLAN_BY_QP_OFFSET);
|
|
MLX4_GET(field, outbox, QUERY_DEV_CAP_SVLAN_BY_QP_OFFSET);
|
|
if (field & 0x1)
|
|
if (field & 0x1)
|
|
dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_SVLAN_BY_QP;
|
|
dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_SVLAN_BY_QP;
|