net/mlx5: Add DCT command interface

Add a missing command interface to work with a DCT. It includes: creating,
destroying and get events for.

Signed-off-by: Moni Shoua <monis@mellanox.com>
Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
Moni Shoua 2018-01-02 16:19:28 +02:00 committed by Jason Gunthorpe
parent 8fc12d94ee
commit 57cda166bb
5 changed files with 150 additions and 13 deletions

View file

@ -286,6 +286,7 @@ enum {
MLX5_EVENT_QUEUE_TYPE_QP = 0,
MLX5_EVENT_QUEUE_TYPE_RQ = 1,
MLX5_EVENT_QUEUE_TYPE_SQ = 2,
MLX5_EVENT_QUEUE_TYPE_DCT = 6,
};
enum mlx5_event {
@ -321,6 +322,8 @@ enum mlx5_event {
MLX5_EVENT_TYPE_PAGE_FAULT = 0xc,
MLX5_EVENT_TYPE_NIC_VPORT_CHANGE = 0xd,
MLX5_EVENT_TYPE_DCT_DRAINED = 0x1c,
MLX5_EVENT_TYPE_FPGA_ERROR = 0x20,
};
@ -613,6 +616,11 @@ struct mlx5_eqe_pps {
u8 rsvd2[12];
} __packed;
struct mlx5_eqe_dct {
__be32 reserved[6];
__be32 dctn;
};
union ev_data {
__be32 raw[7];
struct mlx5_eqe_cmd cmd;
@ -628,6 +636,7 @@ union ev_data {
struct mlx5_eqe_vport_change vport_change;
struct mlx5_eqe_port_module port_module;
struct mlx5_eqe_pps pps;
struct mlx5_eqe_dct dct;
} __packed;
struct mlx5_eqe {