diff options
Diffstat (limited to 'include/linux/mlx4')
| -rw-r--r-- | include/linux/mlx4/cmd.h | 4 | ||||
| -rw-r--r-- | include/linux/mlx4/device.h | 17 | ||||
| -rw-r--r-- | include/linux/mlx4/qp.h | 6 |
3 files changed, 25 insertions, 2 deletions
diff --git a/include/linux/mlx4/cmd.h b/include/linux/mlx4/cmd.h index 9958ff2cad3c..1f3860a8a109 100644 --- a/include/linux/mlx4/cmd.h +++ b/include/linux/mlx4/cmd.h | |||
| @@ -150,6 +150,10 @@ enum { | |||
| 150 | /* statistics commands */ | 150 | /* statistics commands */ |
| 151 | MLX4_CMD_QUERY_IF_STAT = 0X54, | 151 | MLX4_CMD_QUERY_IF_STAT = 0X54, |
| 152 | MLX4_CMD_SET_IF_STAT = 0X55, | 152 | MLX4_CMD_SET_IF_STAT = 0X55, |
| 153 | |||
| 154 | /* set port opcode modifiers */ | ||
| 155 | MLX4_SET_PORT_PRIO2TC = 0x8, | ||
| 156 | MLX4_SET_PORT_SCHEDULER = 0x9, | ||
| 153 | }; | 157 | }; |
| 154 | 158 | ||
| 155 | enum { | 159 | enum { |
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h index 834c96c5d879..6a8f002b8ed3 100644 --- a/include/linux/mlx4/device.h +++ b/include/linux/mlx4/device.h | |||
| @@ -64,6 +64,7 @@ enum { | |||
| 64 | MLX4_MAX_NUM_PF = 16, | 64 | MLX4_MAX_NUM_PF = 16, |
| 65 | MLX4_MAX_NUM_VF = 64, | 65 | MLX4_MAX_NUM_VF = 64, |
| 66 | MLX4_MFUNC_MAX = 80, | 66 | MLX4_MFUNC_MAX = 80, |
| 67 | MLX4_MAX_EQ_NUM = 1024, | ||
| 67 | MLX4_MFUNC_EQ_NUM = 4, | 68 | MLX4_MFUNC_EQ_NUM = 4, |
| 68 | MLX4_MFUNC_MAX_EQES = 8, | 69 | MLX4_MFUNC_MAX_EQES = 8, |
| 69 | MLX4_MFUNC_EQE_MASK = (MLX4_MFUNC_MAX_EQES - 1) | 70 | MLX4_MFUNC_EQE_MASK = (MLX4_MFUNC_MAX_EQES - 1) |
| @@ -98,6 +99,12 @@ enum { | |||
| 98 | MLX4_DEV_CAP_FLAG_SENSE_SUPPORT = 1LL << 55 | 99 | MLX4_DEV_CAP_FLAG_SENSE_SUPPORT = 1LL << 55 |
| 99 | }; | 100 | }; |
| 100 | 101 | ||
| 102 | enum { | ||
| 103 | MLX4_DEV_CAP_FLAG2_RSS = 1LL << 0, | ||
| 104 | MLX4_DEV_CAP_FLAG2_RSS_TOP = 1LL << 1, | ||
| 105 | MLX4_DEV_CAP_FLAG2_RSS_XOR = 1LL << 2 | ||
| 106 | }; | ||
| 107 | |||
| 101 | #define MLX4_ATTR_EXTENDED_PORT_INFO cpu_to_be16(0xff90) | 108 | #define MLX4_ATTR_EXTENDED_PORT_INFO cpu_to_be16(0xff90) |
| 102 | 109 | ||
| 103 | enum { | 110 | enum { |
| @@ -233,6 +240,10 @@ static inline u64 mlx4_fw_ver(u64 major, u64 minor, u64 subminor) | |||
| 233 | return (major << 32) | (minor << 16) | subminor; | 240 | return (major << 32) | (minor << 16) | subminor; |
| 234 | } | 241 | } |
| 235 | 242 | ||
| 243 | struct mlx4_phys_caps { | ||
| 244 | u32 num_phys_eqs; | ||
| 245 | }; | ||
| 246 | |||
| 236 | struct mlx4_caps { | 247 | struct mlx4_caps { |
| 237 | u64 fw_ver; | 248 | u64 fw_ver; |
| 238 | u32 function; | 249 | u32 function; |
| @@ -292,11 +303,13 @@ struct mlx4_caps { | |||
| 292 | u32 max_msg_sz; | 303 | u32 max_msg_sz; |
| 293 | u32 page_size_cap; | 304 | u32 page_size_cap; |
| 294 | u64 flags; | 305 | u64 flags; |
| 306 | u64 flags2; | ||
| 295 | u32 bmme_flags; | 307 | u32 bmme_flags; |
| 296 | u32 reserved_lkey; | 308 | u32 reserved_lkey; |
| 297 | u16 stat_rate_support; | 309 | u16 stat_rate_support; |
| 298 | u8 port_width_cap[MLX4_MAX_PORTS + 1]; | 310 | u8 port_width_cap[MLX4_MAX_PORTS + 1]; |
| 299 | int max_gso_sz; | 311 | int max_gso_sz; |
| 312 | int max_rss_tbl_sz; | ||
| 300 | int reserved_qps_cnt[MLX4_NUM_QP_REGION]; | 313 | int reserved_qps_cnt[MLX4_NUM_QP_REGION]; |
| 301 | int reserved_qps; | 314 | int reserved_qps; |
| 302 | int reserved_qps_base[MLX4_NUM_QP_REGION]; | 315 | int reserved_qps_base[MLX4_NUM_QP_REGION]; |
| @@ -491,6 +504,7 @@ struct mlx4_dev { | |||
| 491 | unsigned long flags; | 504 | unsigned long flags; |
| 492 | unsigned long num_slaves; | 505 | unsigned long num_slaves; |
| 493 | struct mlx4_caps caps; | 506 | struct mlx4_caps caps; |
| 507 | struct mlx4_phys_caps phys_caps; | ||
| 494 | struct radix_tree_root qp_table_tree; | 508 | struct radix_tree_root qp_table_tree; |
| 495 | u8 rev_id; | 509 | u8 rev_id; |
| 496 | char board_id[MLX4_BOARD_ID_LEN]; | 510 | char board_id[MLX4_BOARD_ID_LEN]; |
| @@ -628,6 +642,9 @@ int mlx4_SET_PORT_general(struct mlx4_dev *dev, u8 port, int mtu, | |||
| 628 | u8 pptx, u8 pfctx, u8 pprx, u8 pfcrx); | 642 | u8 pptx, u8 pfctx, u8 pprx, u8 pfcrx); |
| 629 | int mlx4_SET_PORT_qpn_calc(struct mlx4_dev *dev, u8 port, u32 base_qpn, | 643 | int mlx4_SET_PORT_qpn_calc(struct mlx4_dev *dev, u8 port, u32 base_qpn, |
| 630 | u8 promisc); | 644 | u8 promisc); |
| 645 | int mlx4_SET_PORT_PRIO2TC(struct mlx4_dev *dev, u8 port, u8 *prio2tc); | ||
| 646 | int mlx4_SET_PORT_SCHEDULER(struct mlx4_dev *dev, u8 port, u8 *tc_tx_bw, | ||
| 647 | u8 *pg, u16 *ratelimit); | ||
| 631 | int mlx4_find_cached_vlan(struct mlx4_dev *dev, u8 port, u16 vid, int *idx); | 648 | int mlx4_find_cached_vlan(struct mlx4_dev *dev, u8 port, u16 vid, int *idx); |
| 632 | int mlx4_register_vlan(struct mlx4_dev *dev, u8 port, u16 vlan, int *index); | 649 | int mlx4_register_vlan(struct mlx4_dev *dev, u8 port, u16 vlan, int *index); |
| 633 | void mlx4_unregister_vlan(struct mlx4_dev *dev, u8 port, int index); | 650 | void mlx4_unregister_vlan(struct mlx4_dev *dev, u8 port, int index); |
diff --git a/include/linux/mlx4/qp.h b/include/linux/mlx4/qp.h index 091f9e7dc8b9..338388ba260a 100644 --- a/include/linux/mlx4/qp.h +++ b/include/linux/mlx4/qp.h | |||
| @@ -139,7 +139,8 @@ struct mlx4_qp_path { | |||
| 139 | u8 rgid[16]; | 139 | u8 rgid[16]; |
| 140 | u8 sched_queue; | 140 | u8 sched_queue; |
| 141 | u8 vlan_index; | 141 | u8 vlan_index; |
| 142 | u8 reserved3[2]; | 142 | u8 feup; |
| 143 | u8 reserved3; | ||
| 143 | u8 reserved4[2]; | 144 | u8 reserved4[2]; |
| 144 | u8 dmac[6]; | 145 | u8 dmac[6]; |
| 145 | }; | 146 | }; |
| @@ -233,7 +234,8 @@ struct mlx4_wqe_mlx_seg { | |||
| 233 | u8 owner; | 234 | u8 owner; |
| 234 | u8 reserved1[2]; | 235 | u8 reserved1[2]; |
| 235 | u8 opcode; | 236 | u8 opcode; |
| 236 | u8 reserved2[3]; | 237 | __be16 sched_prio; |
| 238 | u8 reserved2; | ||
| 237 | u8 size; | 239 | u8 size; |
| 238 | /* | 240 | /* |
| 239 | * [17] VL15 | 241 | * [17] VL15 |
