Merge branch 'mlx5_vdpa' into rdma.git for-next
From the mlx5-next branch at git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux Merged due to dependencies in the next patches. * branch 'mlx5_vdpa': net/mlx5: Expose vDPA emulation device capabilities net/mlx5: Add Virtio Emulation related device capabilities
This commit is contained in:
commit
aef5570e23
|
@ -245,6 +245,13 @@ int mlx5_query_hca_caps(struct mlx5_core_dev *dev)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (MLX5_CAP_GEN_64(dev, general_obj_types) &
|
||||||
|
MLX5_GENERAL_OBJ_TYPES_CAP_VIRTIO_NET_Q) {
|
||||||
|
err = mlx5_core_get_caps(dev, MLX5_CAP_VDPA_EMULATION);
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1105,6 +1105,7 @@ enum mlx5_cap_type {
|
||||||
MLX5_CAP_DEV_MEM,
|
MLX5_CAP_DEV_MEM,
|
||||||
MLX5_CAP_RESERVED_16,
|
MLX5_CAP_RESERVED_16,
|
||||||
MLX5_CAP_TLS,
|
MLX5_CAP_TLS,
|
||||||
|
MLX5_CAP_VDPA_EMULATION = 0x13,
|
||||||
MLX5_CAP_DEV_EVENT = 0x14,
|
MLX5_CAP_DEV_EVENT = 0x14,
|
||||||
/* NUM OF CAP Types */
|
/* NUM OF CAP Types */
|
||||||
MLX5_CAP_NUM
|
MLX5_CAP_NUM
|
||||||
|
@ -1297,6 +1298,14 @@ enum mlx5_qcam_feature_groups {
|
||||||
#define MLX5_CAP_DEV_EVENT(mdev, cap)\
|
#define MLX5_CAP_DEV_EVENT(mdev, cap)\
|
||||||
MLX5_ADDR_OF(device_event_cap, (mdev)->caps.hca_cur[MLX5_CAP_DEV_EVENT], 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 {
|
enum {
|
||||||
MLX5_CMD_STAT_OK = 0x0,
|
MLX5_CMD_STAT_OK = 0x0,
|
||||||
MLX5_CMD_STAT_INT_ERR = 0x1,
|
MLX5_CMD_STAT_INT_ERR = 0x1,
|
||||||
|
|
|
@ -87,6 +87,7 @@ enum {
|
||||||
enum {
|
enum {
|
||||||
MLX5_GENERAL_OBJ_TYPES_CAP_SW_ICM = (1ULL << MLX5_OBJ_TYPE_SW_ICM),
|
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_GENEVE_TLV_OPT = (1ULL << 11),
|
||||||
|
MLX5_GENERAL_OBJ_TYPES_CAP_VIRTIO_NET_Q = (1ULL << 13),
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
@ -953,6 +954,19 @@ struct mlx5_ifc_device_event_cap_bits {
|
||||||
u8 user_unaffiliated_events[4][0x40];
|
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 {
|
enum {
|
||||||
MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_1_BYTE = 0x0,
|
MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_1_BYTE = 0x0,
|
||||||
MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_2_BYTES = 0x2,
|
MLX5_ATOMIC_CAPS_ATOMIC_SIZE_QP_2_BYTES = 0x2,
|
||||||
|
@ -2751,6 +2765,7 @@ union mlx5_ifc_hca_cap_union_bits {
|
||||||
struct mlx5_ifc_fpga_cap_bits fpga_cap;
|
struct mlx5_ifc_fpga_cap_bits fpga_cap;
|
||||||
struct mlx5_ifc_tls_cap_bits tls_cap;
|
struct mlx5_ifc_tls_cap_bits tls_cap;
|
||||||
struct mlx5_ifc_device_mem_cap_bits device_mem_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];
|
u8 reserved_at_0[0x8000];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue