net/mlx4_core: Introduce ACCESS_REG CMD and eth_prot_ctrl dev cap
Adding ACCESS REG mlx4 command and use it to implement Query method for PTYS (Port Type and Speed Register). Query and store eth_prot_ctrl dev cap. Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> Signed-off-by: Amir Vadai <amirv@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
7202da8b7f
commit
adbc7ac5c1
@@ -67,6 +67,8 @@ enum {
|
||||
MLX4_CMD_MAP_ICM_AUX = 0xffc,
|
||||
MLX4_CMD_UNMAP_ICM_AUX = 0xffb,
|
||||
MLX4_CMD_SET_ICM_SIZE = 0xffd,
|
||||
MLX4_CMD_ACCESS_REG = 0x3b,
|
||||
|
||||
/*master notify fw on finish for slave's flr*/
|
||||
MLX4_CMD_INFORM_FLR_DONE = 0x5b,
|
||||
MLX4_CMD_GET_OP_REQ = 0x59,
|
||||
|
@@ -186,7 +186,8 @@ enum {
|
||||
MLX4_DEV_CAP_FLAG2_VXLAN_OFFLOADS = 1LL << 10,
|
||||
MLX4_DEV_CAP_FLAG2_MAD_DEMUX = 1LL << 11,
|
||||
MLX4_DEV_CAP_FLAG2_CQE_STRIDE = 1LL << 12,
|
||||
MLX4_DEV_CAP_FLAG2_EQE_STRIDE = 1LL << 13
|
||||
MLX4_DEV_CAP_FLAG2_EQE_STRIDE = 1LL << 13,
|
||||
MLX4_DEV_CAP_FLAG2_ETH_PROT_CTRL = 1LL << 14
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -1319,4 +1320,41 @@ static inline bool mlx4_low_memory_profile(void)
|
||||
return is_kdump_kernel();
|
||||
}
|
||||
|
||||
/* ACCESS REG commands */
|
||||
enum mlx4_access_reg_method {
|
||||
MLX4_ACCESS_REG_QUERY = 0x1,
|
||||
MLX4_ACCESS_REG_WRITE = 0x2,
|
||||
};
|
||||
|
||||
/* ACCESS PTYS Reg command */
|
||||
enum mlx4_ptys_proto {
|
||||
MLX4_PTYS_IB = 1<<0,
|
||||
MLX4_PTYS_EN = 1<<2,
|
||||
};
|
||||
|
||||
struct mlx4_ptys_reg {
|
||||
u8 resrvd1;
|
||||
u8 local_port;
|
||||
u8 resrvd2;
|
||||
u8 proto_mask;
|
||||
__be32 resrvd3[2];
|
||||
__be32 eth_proto_cap;
|
||||
__be16 ib_width_cap;
|
||||
__be16 ib_speed_cap;
|
||||
__be32 resrvd4;
|
||||
__be32 eth_proto_admin;
|
||||
__be16 ib_width_admin;
|
||||
__be16 ib_speed_admin;
|
||||
__be32 resrvd5;
|
||||
__be32 eth_proto_oper;
|
||||
__be16 ib_width_oper;
|
||||
__be16 ib_speed_oper;
|
||||
__be32 resrvd6;
|
||||
__be32 eth_proto_lp_adv;
|
||||
} __packed;
|
||||
|
||||
int mlx4_ACCESS_PTYS_REG(struct mlx4_dev *dev,
|
||||
enum mlx4_access_reg_method method,
|
||||
struct mlx4_ptys_reg *ptys_reg);
|
||||
|
||||
#endif /* MLX4_DEVICE_H */
|
||||
|
Reference in New Issue
Block a user