[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20260118-sfp-25g-lr-v1-2-2daf48ffae7f@solid-run.com>
Date: Sun, 18 Jan 2026 16:07:38 +0200
From: Josua Mayer <josua@...id-run.com>
To: Andrew Lunn <andrew@...n.ch>, Heiner Kallweit <hkallweit1@...il.com>,
Russell King <linux@...linux.org.uk>,
"David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
Simon Horman <horms@...nel.org>
Cc: Mikhail Anikin <mikhail.anikin@...id-run.com>,
Rabeeh Khoury <rabeeh@...id-run.com>,
Yazan Shhady <yazan.shhady@...id-run.com>, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org, Josua Mayer <josua@...id-run.com>
Subject: [PATCH 2/2] net: sfp: support 25G long-range modules (extended
compliance code 0x3)
The extended compliance code value SFF8024_ECC_100GBASE_ER4_25GBASE_ER
(0x3) means either 4-lane 100G or single lane 25G.
Set 25000baseLR_Full mode supported in addition to the already set
100000baseLR4_ER4_Full, and handle it in sfp_select_interface.
This fixes detection of 25G capability for two SFP fiber modules:
- GigaLight GSS-SPO250-LRT
- FS SFP-25G23-BX20-I
Signed-off-by: Josua Mayer <josua@...id-run.com>
---
drivers/net/phy/sfp-bus.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/phy/sfp-bus.c b/drivers/net/phy/sfp-bus.c
index b945d75966d5..2caa0e0c4ec8 100644
--- a/drivers/net/phy/sfp-bus.c
+++ b/drivers/net/phy/sfp-bus.c
@@ -247,6 +247,7 @@ static void sfp_module_parse_support(struct sfp_bus *bus,
case SFF8024_ECC_100GBASE_LR4_25GBASE_LR:
case SFF8024_ECC_100GBASE_ER4_25GBASE_ER:
phylink_set(modes, 100000baseLR4_ER4_Full);
+ phylink_set(modes, 25000baseLR_Full);
break;
case SFF8024_ECC_100GBASE_CR4:
phylink_set(modes, 100000baseCR4_Full);
@@ -342,7 +343,8 @@ phy_interface_t sfp_select_interface(struct sfp_bus *bus,
{
if (phylink_test(link_modes, 25000baseCR_Full) ||
phylink_test(link_modes, 25000baseKR_Full) ||
- phylink_test(link_modes, 25000baseSR_Full))
+ phylink_test(link_modes, 25000baseSR_Full) ||
+ phylink_test(link_modes, 25000baseLR_Full))
return PHY_INTERFACE_MODE_25GBASER;
if (phylink_test(link_modes, 10000baseCR_Full) ||
--
2.43.0
Powered by blists - more mailing lists