| From 1abff427cab02c4045c8fa54922b901dcb197663 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 28 Nov 2021 13:37:11 +0100 |
| Subject: net/mlx4_en: Update reported link modes for 1/10G |
| |
| From: Erik Ekman <erik@kryo.se> |
| |
| [ Upstream commit 2191b1dfef7d45f44b5008d2148676d9f2c82874 ] |
| |
| When link modes were initially added in commit 2c762679435dc |
| ("net/mlx4_en: Use PTYS register to query ethtool settings") and |
| later updated for the new ethtool API in commit 3d8f7cc78d0eb |
| ("net: mlx4: use new ETHTOOL_G/SSETTINGS API") the only 1/10G non-baseT |
| link modes configured were 1000baseKX, 10000baseKX4 and 10000baseKR. |
| It looks like these got picked to represent other modes since nothing |
| better was available. |
| |
| Switch to using more specific link modes added in commit 5711a98221443 |
| ("net: ethtool: add support for 1000BaseX and missing 10G link modes"). |
| |
| Tested with MCX311A-XCAT connected via DAC. |
| Before: |
| |
| % sudo ethtool enp3s0 |
| Settings for enp3s0: |
| Supported ports: [ FIBRE ] |
| Supported link modes: 1000baseKX/Full |
| 10000baseKR/Full |
| Supported pause frame use: Symmetric Receive-only |
| Supports auto-negotiation: No |
| Supported FEC modes: Not reported |
| Advertised link modes: 1000baseKX/Full |
| 10000baseKR/Full |
| Advertised pause frame use: Symmetric |
| Advertised auto-negotiation: No |
| Advertised FEC modes: Not reported |
| Speed: 10000Mb/s |
| Duplex: Full |
| Auto-negotiation: off |
| Port: Direct Attach Copper |
| PHYAD: 0 |
| Transceiver: internal |
| Supports Wake-on: d |
| Wake-on: d |
| Current message level: 0x00000014 (20) |
| link ifdown |
| Link detected: yes |
| |
| With this change: |
| |
| % sudo ethtool enp3s0 |
| Settings for enp3s0: |
| Supported ports: [ FIBRE ] |
| Supported link modes: 1000baseX/Full |
| 10000baseCR/Full |
| 10000baseSR/Full |
| Supported pause frame use: Symmetric Receive-only |
| Supports auto-negotiation: No |
| Supported FEC modes: Not reported |
| Advertised link modes: 1000baseX/Full |
| 10000baseCR/Full |
| 10000baseSR/Full |
| Advertised pause frame use: Symmetric |
| Advertised auto-negotiation: No |
| Advertised FEC modes: Not reported |
| Speed: 10000Mb/s |
| Duplex: Full |
| Auto-negotiation: off |
| Port: Direct Attach Copper |
| PHYAD: 0 |
| Transceiver: internal |
| Supports Wake-on: d |
| Wake-on: d |
| Current message level: 0x00000014 (20) |
| link ifdown |
| Link detected: yes |
| |
| Tested-by: Michael Stapelberg <michael@stapelberg.ch> |
| Signed-off-by: Erik Ekman <erik@kryo.se> |
| Reviewed-by: Tariq Toukan <tariqt@nvidia.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/mellanox/mlx4/en_ethtool.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c |
| index ef518b1040f72..fde521b1eecad 100644 |
| --- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c |
| +++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c |
| @@ -663,7 +663,7 @@ void __init mlx4_en_init_ptys2ethtool_map(void) |
| MLX4_BUILD_PTYS2ETHTOOL_CONFIG(MLX4_1000BASE_T, SPEED_1000, |
| ETHTOOL_LINK_MODE_1000baseT_Full_BIT); |
| MLX4_BUILD_PTYS2ETHTOOL_CONFIG(MLX4_1000BASE_CX_SGMII, SPEED_1000, |
| - ETHTOOL_LINK_MODE_1000baseKX_Full_BIT); |
| + ETHTOOL_LINK_MODE_1000baseX_Full_BIT); |
| MLX4_BUILD_PTYS2ETHTOOL_CONFIG(MLX4_1000BASE_KX, SPEED_1000, |
| ETHTOOL_LINK_MODE_1000baseKX_Full_BIT); |
| MLX4_BUILD_PTYS2ETHTOOL_CONFIG(MLX4_10GBASE_T, SPEED_10000, |
| @@ -675,9 +675,9 @@ void __init mlx4_en_init_ptys2ethtool_map(void) |
| MLX4_BUILD_PTYS2ETHTOOL_CONFIG(MLX4_10GBASE_KR, SPEED_10000, |
| ETHTOOL_LINK_MODE_10000baseKR_Full_BIT); |
| MLX4_BUILD_PTYS2ETHTOOL_CONFIG(MLX4_10GBASE_CR, SPEED_10000, |
| - ETHTOOL_LINK_MODE_10000baseKR_Full_BIT); |
| + ETHTOOL_LINK_MODE_10000baseCR_Full_BIT); |
| MLX4_BUILD_PTYS2ETHTOOL_CONFIG(MLX4_10GBASE_SR, SPEED_10000, |
| - ETHTOOL_LINK_MODE_10000baseKR_Full_BIT); |
| + ETHTOOL_LINK_MODE_10000baseSR_Full_BIT); |
| MLX4_BUILD_PTYS2ETHTOOL_CONFIG(MLX4_20GBASE_KR2, SPEED_20000, |
| ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT, |
| ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT); |
| -- |
| 2.33.0 |
| |