diff options
Diffstat (limited to 'include/linux/mlx5')
| -rw-r--r-- | include/linux/mlx5/device.h | 1 | ||||
| -rw-r--r-- | include/linux/mlx5/driver.h | 25 | ||||
| -rw-r--r-- | include/linux/mlx5/mlx5_ifc.h | 36 | ||||
| -rw-r--r-- | include/linux/mlx5/vport.h | 2 | 
4 files changed, 43 insertions, 21 deletions
| diff --git a/include/linux/mlx5/device.h b/include/linux/mlx5/device.h index c0af74efd3cb..80cc12a9a531 100644 --- a/include/linux/mlx5/device.h +++ b/include/linux/mlx5/device.h @@ -716,6 +716,7 @@ enum sync_rst_state_type {  	MLX5_SYNC_RST_STATE_RESET_REQUEST	= 0x0,  	MLX5_SYNC_RST_STATE_RESET_NOW		= 0x1,  	MLX5_SYNC_RST_STATE_RESET_ABORT		= 0x2, +	MLX5_SYNC_RST_STATE_RESET_UNLOAD	= 0x3,  };  struct mlx5_eqe_sync_fw_update { diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index 4b9626cd83e4..25d0528f9219 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h @@ -382,7 +382,6 @@ enum mlx5_res_type {  	MLX5_RES_SRQ	= 3,  	MLX5_RES_XSRQ	= 4,  	MLX5_RES_XRQ	= 5, -	MLX5_RES_DCT	= MLX5_EVENT_QUEUE_TYPE_DCT,  };  struct mlx5_core_rsc_common { @@ -443,15 +442,6 @@ struct mlx5_core_health {  	struct delayed_work		update_fw_log_ts_work;  }; -struct mlx5_qp_table { -	struct notifier_block   nb; - -	/* protect radix tree -	 */ -	spinlock_t		lock; -	struct radix_tree_root	tree; -}; -  enum {  	MLX5_PF_NOTIFY_DISABLE_VF,  	MLX5_PF_NOTIFY_ENABLE_VF, @@ -474,6 +464,7 @@ struct mlx5_core_sriov {  	struct mlx5_vf_context	*vfs_ctx;  	int			num_vfs;  	u16			max_vfs; +	u16			max_ec_vfs;  };  struct mlx5_fc_pool { @@ -580,6 +571,7 @@ enum mlx5_func_type {  	MLX5_VF,  	MLX5_SF,  	MLX5_HOST_PF, +	MLX5_EC_VF,  	MLX5_FUNC_TYPE_NUM,  }; @@ -1174,7 +1166,13 @@ int mlx5_lag_query_cong_counters(struct mlx5_core_dev *dev,  				 u64 *values,  				 int num_counters,  				 size_t *offsets); -struct mlx5_core_dev *mlx5_lag_get_peer_mdev(struct mlx5_core_dev *dev); +struct mlx5_core_dev *mlx5_lag_get_next_peer_mdev(struct mlx5_core_dev *dev, int *i); + +#define mlx5_lag_for_each_peer_mdev(dev, peer, i)				\ +	for (i = 0, peer = mlx5_lag_get_next_peer_mdev(dev, &i);		\ +	     peer;								\ +	     peer = mlx5_lag_get_next_peer_mdev(dev, &i)) +  u8 mlx5_lag_get_num_ports(struct mlx5_core_dev *dev);  struct mlx5_uars_page *mlx5_get_uars_page(struct mlx5_core_dev *mdev);  void mlx5_put_uars_page(struct mlx5_core_dev *mdev, struct mlx5_uars_page *up); @@ -1250,6 +1248,11 @@ static inline int mlx5_lag_is_lacp_owner(struct mlx5_core_dev *dev)  		    MLX5_CAP_GEN(dev, lag_master);  } +static inline u16 mlx5_core_max_ec_vfs(const struct mlx5_core_dev *dev) +{ +	return dev->priv.sriov.max_ec_vfs; +} +  static inline int mlx5_get_gid_table_len(u16 param)  {  	if (param > 4) { diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h index b89778d0d326..33344a71c3e3 100644 --- a/include/linux/mlx5/mlx5_ifc.h +++ b/include/linux/mlx5/mlx5_ifc.h @@ -1710,9 +1710,9 @@ struct mlx5_ifc_cmd_hca_cap_bits {  	u8         regexp_params[0x1];  	u8         uar_sz[0x6];  	u8         port_selection_cap[0x1]; -	u8         reserved_at_248[0x1]; +	u8         reserved_at_251[0x1];  	u8         umem_uid_0[0x1]; -	u8         reserved_at_250[0x5]; +	u8         reserved_at_253[0x5];  	u8         log_pg_sz[0x8];  	u8         bf[0x1]; @@ -1755,7 +1755,10 @@ struct mlx5_ifc_cmd_hca_cap_bits {  	u8         reserved_at_328[0x2];  	u8	   relaxed_ordering_read[0x1];  	u8         log_max_pd[0x5]; -	u8         reserved_at_330[0x9]; +	u8         reserved_at_330[0x6]; +	u8         pci_sync_for_fw_update_with_driver_unload[0x1]; +	u8         vnic_env_cnt_steering_fail[0x1]; +	u8         vport_counter_local_loopback[0x1];  	u8         q_counter_aggregation[0x1];  	u8         q_counter_other_vport[0x1];  	u8         log_max_xrcd[0x5]; @@ -1990,7 +1993,10 @@ struct mlx5_ifc_cmd_hca_cap_2_bits {  	u8	   ts_cqe_metadata_size2wqe_counter[0x5];  	u8	   reserved_at_250[0x10]; -	u8	   reserved_at_260[0x5a0]; +	u8	   reserved_at_260[0x120]; +	u8	   reserved_at_380[0x10]; +	u8	   ec_vf_vport_base[0x10]; +	u8	   reserved_at_3a0[0x460];  };  enum mlx5_ifc_flow_destination_type { @@ -3112,7 +3118,9 @@ struct mlx5_ifc_dtor_reg_bits {  	struct mlx5_ifc_default_timeout_bits reclaim_vfs_pages_to; -	u8         reserved_at_1c0[0x40]; +	struct mlx5_ifc_default_timeout_bits reset_unload_to; + +	u8         reserved_at_1c0[0x20];  };  enum { @@ -3673,7 +3681,13 @@ struct mlx5_ifc_vnic_diagnostic_statistics_bits {  	u8         eth_wqe_too_small[0x20]; -	u8         reserved_at_220[0xdc0]; +	u8         reserved_at_220[0xc0]; + +	u8         generated_pkt_steering_fail[0x40]; + +	u8         handled_pkt_steering_fail[0x40]; + +	u8         reserved_at_360[0xc80];  };  struct mlx5_ifc_traffic_counter_bits { @@ -4797,7 +4811,8 @@ struct mlx5_ifc_set_hca_cap_in_bits {  	u8         op_mod[0x10];  	u8         other_function[0x1]; -	u8         reserved_at_41[0xf]; +	u8         ec_vf_function[0x1]; +	u8         reserved_at_42[0xe];  	u8         function_id[0x10];  	u8         reserved_at_60[0x20]; @@ -5175,7 +5190,9 @@ struct mlx5_ifc_query_vport_counter_out_bits {  	struct mlx5_ifc_traffic_counter_bits transmitted_eth_multicast; -	u8         reserved_at_680[0xa00]; +	struct mlx5_ifc_traffic_counter_bits local_loopback; + +	u8         reserved_at_700[0x980];  };  enum { @@ -5948,7 +5965,8 @@ struct mlx5_ifc_query_hca_cap_in_bits {  	u8         op_mod[0x10];  	u8         other_function[0x1]; -	u8         reserved_at_41[0xf]; +	u8         ec_vf_function[0x1]; +	u8         reserved_at_42[0xe];  	u8         function_id[0x10];  	u8         reserved_at_60[0x20]; diff --git a/include/linux/mlx5/vport.h b/include/linux/mlx5/vport.h index 7f31432f44c2..fbb9bf447889 100644 --- a/include/linux/mlx5/vport.h +++ b/include/linux/mlx5/vport.h @@ -132,6 +132,6 @@ int mlx5_nic_vport_affiliate_multiport(struct mlx5_core_dev *master_mdev,  int mlx5_nic_vport_unaffiliate_multiport(struct mlx5_core_dev *port_mdev);  u64 mlx5_query_nic_system_image_guid(struct mlx5_core_dev *mdev); -int mlx5_vport_get_other_func_cap(struct mlx5_core_dev *dev, u16 function_id, void *out, +int mlx5_vport_get_other_func_cap(struct mlx5_core_dev *dev, u16 vport, void *out,  				  u16 opmod);  #endif /* __MLX5_VPORT_H__ */ |