Skip to content

Commit 12fdafb

Browse files
meir-lichtingerdavem330
authored andcommitted
net/mlx5: Added support for 100Gbps per lane link modes
This patch exposes new link modes using 100Gbps per lane, including 100G, 200G and 400G modes. Signed-off-by: Meir Lichtinger <[email protected]> Reviewed-by: Aya Levin <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 065e0d4 commit 12fdafb

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

drivers/net/ethernet/mellanox/mlx5/core/en/port.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ static const u32 mlx5e_ext_link_speed[MLX5E_EXT_LINK_MODES_NUMBER] = {
7676
[MLX5E_100GAUI_2_100GBASE_CR2_KR2] = 100000,
7777
[MLX5E_200GAUI_4_200GBASE_CR4_KR4] = 200000,
7878
[MLX5E_400GAUI_8] = 400000,
79+
[MLX5E_100GAUI_1_100GBASE_CR_KR] = 100000,
80+
[MLX5E_200GAUI_2_200GBASE_CR2_KR2] = 200000,
81+
[MLX5E_400GAUI_4_400GBASE_CR4_KR4] = 400000,
7982
};
8083

8184
static void mlx5e_port_get_speed_arr(struct mlx5_core_dev *mdev,

drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,24 @@ void mlx5e_build_ptys2ethtool_map(void)
194194
ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT,
195195
ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT,
196196
ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT);
197+
MLX5_BUILD_PTYS2ETHTOOL_CONFIG(MLX5E_100GAUI_1_100GBASE_CR_KR, ext,
198+
ETHTOOL_LINK_MODE_100000baseKR_Full_BIT,
199+
ETHTOOL_LINK_MODE_100000baseSR_Full_BIT,
200+
ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT,
201+
ETHTOOL_LINK_MODE_100000baseDR_Full_BIT,
202+
ETHTOOL_LINK_MODE_100000baseCR_Full_BIT);
203+
MLX5_BUILD_PTYS2ETHTOOL_CONFIG(MLX5E_200GAUI_2_200GBASE_CR2_KR2, ext,
204+
ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT,
205+
ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT,
206+
ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT,
207+
ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT,
208+
ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT);
209+
MLX5_BUILD_PTYS2ETHTOOL_CONFIG(MLX5E_400GAUI_4_400GBASE_CR4_KR4, ext,
210+
ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT,
211+
ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT,
212+
ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT,
213+
ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT,
214+
ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT);
197215
}
198216

199217
static void mlx5e_ethtool_get_speed_arr(struct mlx5_core_dev *mdev,
@@ -1012,7 +1030,8 @@ static u32 mlx5e_ethtool2ptys_ext_adver_link(const unsigned long *link_modes)
10121030
unsigned long modes[2];
10131031

10141032
for (i = 0; i < MLX5E_EXT_LINK_MODES_NUMBER; ++i) {
1015-
if (*ptys2ext_ethtool_table[i].advertised == 0)
1033+
if (ptys2ext_ethtool_table[i].advertised[0] == 0 &&
1034+
ptys2ext_ethtool_table[i].advertised[1] == 0)
10161035
continue;
10171036
memset(modes, 0, sizeof(modes));
10181037
bitmap_and(modes, ptys2ext_ethtool_table[i].advertised,

include/linux/mlx5/port.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,11 @@ enum mlx5e_ext_link_mode {
104104
MLX5E_50GAUI_1_LAUI_1_50GBASE_CR_KR = 8,
105105
MLX5E_CAUI_4_100GBASE_CR4_KR4 = 9,
106106
MLX5E_100GAUI_2_100GBASE_CR2_KR2 = 10,
107+
MLX5E_100GAUI_1_100GBASE_CR_KR = 11,
107108
MLX5E_200GAUI_4_200GBASE_CR4_KR4 = 12,
109+
MLX5E_200GAUI_2_200GBASE_CR2_KR2 = 13,
108110
MLX5E_400GAUI_8 = 15,
111+
MLX5E_400GAUI_4_400GBASE_CR4_KR4 = 16,
109112
MLX5E_EXT_LINK_MODES_NUMBER,
110113
};
111114

0 commit comments

Comments
 (0)