Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ce3bf2f authored by Huy Nguyen's avatar Huy Nguyen Committed by David S. Miller
Browse files

net/mlx5: Port module event hardware structures



Add hardware structures and constants definitions needed for module
events support.

Signed-off-by: default avatarHuy Nguyen <huyn@mellanox.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0ac3ea70
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -277,6 +277,7 @@ enum mlx5_event {
	MLX5_EVENT_TYPE_INTERNAL_ERROR	   = 0x08,
	MLX5_EVENT_TYPE_PORT_CHANGE	   = 0x09,
	MLX5_EVENT_TYPE_GPIO_EVENT	   = 0x15,
	MLX5_EVENT_TYPE_PORT_MODULE_EVENT  = 0x16,
	MLX5_EVENT_TYPE_REMOTE_CONFIG	   = 0x19,

	MLX5_EVENT_TYPE_DB_BF_CONGESTION   = 0x1a,
@@ -552,6 +553,15 @@ struct mlx5_eqe_vport_change {
	__be32		rsvd1[6];
} __packed;

struct mlx5_eqe_port_module {
	u8        reserved_at_0[1];
	u8        module;
	u8        reserved_at_2[1];
	u8        module_status;
	u8        reserved_at_4[2];
	u8        error_type;
} __packed;

union ev_data {
	__be32				raw[7];
	struct mlx5_eqe_cmd		cmd;
@@ -565,6 +575,7 @@ union ev_data {
	struct mlx5_eqe_page_req	req_pages;
	struct mlx5_eqe_page_fault	page_fault;
	struct mlx5_eqe_vport_change	vport_change;
	struct mlx5_eqe_port_module	port_module;
} __packed;

struct mlx5_eqe {
+2 −1
Original line number Diff line number Diff line
@@ -824,7 +824,8 @@ struct mlx5_ifc_cmd_hca_cap_bits {
	u8	   early_vf_enable[0x1];
	u8         reserved_at_1a9[0x2];
	u8         local_ca_ack_delay[0x5];
	u8         reserved_at_1af[0x2];
	u8         port_module_event[0x1];
	u8         reserved_at_1b0[0x1];
	u8         ports_check[0x1];
	u8         reserved_at_1b2[0x1];
	u8         disable_link_up[0x1];
+3 −0
Original line number Diff line number Diff line
@@ -94,6 +94,9 @@ enum mlx5e_link_mode {

#define MLX5E_PROT_MASK(link_mode) (1 << link_mode)

#define PORT_MODULE_EVENT_MODULE_STATUS_MASK 0xF
#define PORT_MODULE_EVENT_ERROR_TYPE_MASK         0xF

int mlx5_set_port_caps(struct mlx5_core_dev *dev, u8 port_num, u32 caps);
int mlx5_query_port_ptys(struct mlx5_core_dev *dev, u32 *ptys,
			 int ptys_size, int proto_mask, u8 local_port);