Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: ethtool: Add support for 80Gbps speed

USB4 v2 link used in peer-to-peer networking is symmetric 80Gbps so in
order to support reading this link speed, add support for it to ethtool.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20260115115646.328898-3-mika.westerberg@linux.intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Mika Westerberg and committed by
Jakub Kicinski
a9927022 8411d728

+11 -3
+1
drivers/net/phy/phy-caps.h
··· 25 25 LINK_CAPA_40000FD, 26 26 LINK_CAPA_50000FD, 27 27 LINK_CAPA_56000FD, 28 + LINK_CAPA_80000FD, 28 29 LINK_CAPA_100000FD, 29 30 LINK_CAPA_200000FD, 30 31 LINK_CAPA_400000FD,
+2
drivers/net/phy/phy-core.c
··· 48 48 return "50Gbps"; 49 49 case SPEED_56000: 50 50 return "56Gbps"; 51 + case SPEED_80000: 52 + return "80Gbps"; 51 53 case SPEED_100000: 52 54 return "100Gbps"; 53 55 case SPEED_200000:
+2
drivers/net/phy/phy_caps.c
··· 21 21 { SPEED_40000, DUPLEX_FULL, {0} }, /* LINK_CAPA_40000FD */ 22 22 { SPEED_50000, DUPLEX_FULL, {0} }, /* LINK_CAPA_50000FD */ 23 23 { SPEED_56000, DUPLEX_FULL, {0} }, /* LINK_CAPA_56000FD */ 24 + { SPEED_80000, DUPLEX_FULL, {0} }, /* LINK_CAPA_80000FD */ 24 25 { SPEED_100000, DUPLEX_FULL, {0} }, /* LINK_CAPA_100000FD */ 25 26 { SPEED_200000, DUPLEX_FULL, {0} }, /* LINK_CAPA_200000FD */ 26 27 { SPEED_400000, DUPLEX_FULL, {0} }, /* LINK_CAPA_400000FD */ ··· 50 49 case SPEED_40000: return LINK_CAPA_40000FD; 51 50 case SPEED_50000: return LINK_CAPA_50000FD; 52 51 case SPEED_56000: return LINK_CAPA_56000FD; 52 + case SPEED_80000: return LINK_CAPA_80000FD; 53 53 case SPEED_100000: return LINK_CAPA_100000FD; 54 54 case SPEED_200000: return LINK_CAPA_200000FD; 55 55 case SPEED_400000: return LINK_CAPA_400000FD;
+1
drivers/net/phy/phylink.c
··· 311 311 { MAC_400000FD, SPEED_400000, DUPLEX_FULL, BIT(LINK_CAPA_400000FD) }, 312 312 { MAC_200000FD, SPEED_200000, DUPLEX_FULL, BIT(LINK_CAPA_200000FD) }, 313 313 { MAC_100000FD, SPEED_100000, DUPLEX_FULL, BIT(LINK_CAPA_100000FD) }, 314 + { MAC_80000FD, SPEED_80000, DUPLEX_FULL, BIT(LINK_CAPA_80000FD) }, 314 315 { MAC_56000FD, SPEED_56000, DUPLEX_FULL, BIT(LINK_CAPA_56000FD) }, 315 316 { MAC_50000FD, SPEED_50000, DUPLEX_FULL, BIT(LINK_CAPA_50000FD) }, 316 317 { MAC_40000FD, SPEED_40000, DUPLEX_FULL, BIT(LINK_CAPA_40000FD) },
+4 -3
include/linux/phylink.h
··· 90 90 MAC_40000FD = BIT(13), 91 91 MAC_50000FD = BIT(14), 92 92 MAC_56000FD = BIT(15), 93 - MAC_100000FD = BIT(16), 94 - MAC_200000FD = BIT(17), 95 - MAC_400000FD = BIT(18), 93 + MAC_80000FD = BIT(16), 94 + MAC_100000FD = BIT(17), 95 + MAC_200000FD = BIT(18), 96 + MAC_400000FD = BIT(19), 96 97 }; 97 98 98 99 static inline bool phylink_autoneg_inband(unsigned int mode)
+1
include/uapi/linux/ethtool.h
··· 2203 2203 #define SPEED_40000 40000 2204 2204 #define SPEED_50000 50000 2205 2205 #define SPEED_56000 56000 2206 + #define SPEED_80000 80000 2206 2207 #define SPEED_100000 100000 2207 2208 #define SPEED_200000 200000 2208 2209 #define SPEED_400000 400000