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 |