History

Merge tag 'mlx5-updates-2022-05-09' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux

Saeed Mahameed says: ==================== mlx5-updates-2022-05-09 1) Gavin Li, adds exit route from waiting for FW init on device boot and increases FW init timeout on health recovery flow 2) Support 4 ports HCAs LAG mode Mark Bloch Says: ================ This series adds to mlx5 drivers support for 4 ports HCAs. Starting with ConnectX-7 HCAs with 4 ports are possible. As most driver parts aren't affected by such configuration most driver code is unchanged. Specially the only affected areas are: - Lag - Devcom - Merged E-Switch - Single FDB E-Switch Lag was chosen to be converted first. Creating hardware LAG when all 4 ports are added to the same bond device. Devom, merge E-Switch and single FDB E-Switch, are marked as supporting only 2 ports HCAs and future patches will add support for 4 ports HCAs. In order to activate the hardware lag a user can execute the: ip link add bond0 type bond ip link set bond0 type bond miimon 100 mode 2 ip link set eth2 master bond0 ip link set eth3 master bond0 ip link set eth4 master bond0 ip link set eth5 master bond0 Where eth2, eth3, eth4 and eth5 are the PFs of the same HCA. ================ ====================

David S. Miller committed 4 years ago

Commit dc3a2002 parents 53a332f 7f46a0b22 files · +720 −302Browse files

Showing the changes to include (1 of 22 files). Show all

Unified · Split

include/linux/mlx5/driver.h+4−1
@@ -84,7 +84,7 @@ enum mlx5_sqp_t { · 83 unmodified lines
84};84};
85 85
86enum {86enum {
87 MLX5_MAX_PORTS = 2,87 MLX5_MAX_PORTS = 4,
88};88};
89 89
90enum {90enum {
@@ -558,6 +558,7 @@ struct mlx5_debugfs_entries { · 467 unmodified lines
558 struct dentry *cq_debugfs;558 struct dentry *cq_debugfs;
559 struct dentry *cmdif_debugfs;559 struct dentry *cmdif_debugfs;
560 struct dentry *pages_debugfs;560 struct dentry *pages_debugfs;
561 struct dentry *lag_debugfs;
561};562};
562 563
563struct mlx5_ft_pool;564struct mlx5_ft_pool;
@@ -632,6 +633,7 @@ enum mlx5_device_state { · 68 unmodified lines
632 633
633enum mlx5_interface_state {634enum mlx5_interface_state {
634 MLX5_INTERFACE_STATE_UP = BIT(0),635 MLX5_INTERFACE_STATE_UP = BIT(0),
636 MLX5_BREAK_FW_WAIT = BIT(1),
635};637};
636 638
637enum mlx5_pci_status {639enum mlx5_pci_status {
@@ -1141,6 +1143,7 @@ int mlx5_lag_query_cong_counters(struct mlx5_core_dev *dev, · 503 unmodified lines
1141 int num_counters,1143 int num_counters,
1142 size_t *offsets);1144 size_t *offsets);
1143struct mlx5_core_dev *mlx5_lag_get_peer_mdev(struct mlx5_core_dev *dev);1145struct mlx5_core_dev *mlx5_lag_get_peer_mdev(struct mlx5_core_dev *dev);
1146u8 mlx5_lag_get_num_ports(struct mlx5_core_dev *dev);
1144struct mlx5_uars_page *mlx5_get_uars_page(struct mlx5_core_dev *mdev);1147struct mlx5_uars_page *mlx5_get_uars_page(struct mlx5_core_dev *mdev);
1145void mlx5_put_uars_page(struct mlx5_core_dev *mdev, struct mlx5_uars_page *up);1148void mlx5_put_uars_page(struct mlx5_core_dev *mdev, struct mlx5_uars_page *up);
1146int mlx5_dm_sw_icm_alloc(struct mlx5_core_dev *dev, enum mlx5_sw_icm_type type,1149int mlx5_dm_sw_icm_alloc(struct mlx5_core_dev *dev, enum mlx5_sw_icm_type type,