* [PATCH] net: sfp: add quirks for GPON ONT SFP sticks
@ 2026-04-06 11:44 John Pavlick
2026-04-06 12:48 ` Daniel Golle
0 siblings, 1 reply; 3+ messages in thread
From: John Pavlick @ 2026-04-06 11:44 UTC (permalink / raw)
To: linux
Cc: andrew, hkallweit1, davem, edumazet, kuba, pabeni, netdev,
linux-kernel, John Pavlick
Several GPON ONT SFP sticks based on Realtek RTL960x report
1000BASE-LX at 1300MBd in their EEPROM but can operate at 2500base-X.
On hosts with serdes fixed at 2.5Gbase-X (e.g. Banana Pi R3 / MT7986),
the kernel rejects them with 'no common interface modes'.
Add quirks for:
- Hisense-Leox LXT-010S-H
- Hisense ZNID-GPON-2311NA
- HSGQ HSGQ-XPON-Stick
Each quirk advertises 2500base-X and ignores TX_FAULT during the
module's ~40s Linux boot time.
Tested on Banana Pi R3 (MT7986) with OpenWrt 25.12.1, confirmed
2.5Gbps link and full throughput with flow offloading.
Signed-off-by: John Pavlick <jspavlick@posteo.net>
---
drivers/net/phy/sfp.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c
index f1070eb0a0bb..bd970f753beb 100644
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
@@ -543,6 +543,22 @@ static const struct sfp_quirk sfp_quirks[] = {
SFP_QUIRK("HUAWEI", "MA5671A", sfp_quirk_2500basex,
sfp_fixup_ignore_tx_fault_and_los),
+ // Hisense LXT-010S-H is a GPON ONT SFP (sold as LEOX LXT-010S-H) that
+ // can operate at 2500base-X, but reports 1000BASE-LX / 1300MBd in its
+ // EEPROM
+ SFP_QUIRK("Hisense-Leox", "LXT-010S-H", sfp_quirk_2500basex,
+ sfp_fixup_ignore_tx_fault),
+
+ // Hisense ZNID-GPON-2311NA can operate at 2500base-X, but reports
+ // 1000BASE-LX / 1300MBd in its EEPROM
+ SFP_QUIRK("Hisense", "ZNID-GPON-2311NA", sfp_quirk_2500basex,
+ sfp_fixup_ignore_tx_fault),
+
+ // HSGQ HSGQ-XPON-Stick can operate at 2500base-X, but reports
+ // 1000BASE-LX / 1300MBd in its EEPROM
+ SFP_QUIRK("HSGQ", "HSGQ-XPON-Stick", sfp_quirk_2500basex,
+ sfp_fixup_ignore_tx_fault),
+
// Lantech 8330-262D-E and 8330-265D can operate at 2500base-X, but
// incorrectly report 2500MBd NRZ in their EEPROM.
// Some 8330-265D modules have inverted LOS, while all of them report
--
2.53.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] net: sfp: add quirks for GPON ONT SFP sticks
2026-04-06 11:44 [PATCH] net: sfp: add quirks for GPON ONT SFP sticks John Pavlick
@ 2026-04-06 12:48 ` Daniel Golle
2026-04-06 13:23 ` John Pavlick
0 siblings, 1 reply; 3+ messages in thread
From: Daniel Golle @ 2026-04-06 12:48 UTC (permalink / raw)
To: John Pavlick
Cc: linux, andrew, hkallweit1, davem, edumazet, kuba, pabeni, netdev,
linux-kernel
On Mon, Apr 06, 2026 at 11:44:05AM +0000, John Pavlick wrote:
> Several GPON ONT SFP sticks based on Realtek RTL960x report
> 1000BASE-LX at 1300MBd in their EEPROM but can operate at 2500base-X.
> On hosts with serdes fixed at 2.5Gbase-X (e.g. Banana Pi R3 / MT7986),
> the kernel rejects them with 'no common interface modes'.
While the quirks themselves may be correct, the statement above is wrong.
The BananaPi R3 (and all MediaTek router SoCs) *do* support also
1000Base-X and SGMII, the SerDes is *not* "fixed at 2.5GBase-X". This
can easily be verified by plugging a random 1Gbps SFP module into the
board (eg. ubiquitous copper modules based on Marvell 88E1111 PHY).
Also you have to make sure to not break support for those modules on
boards which do not support 2500Base-X and need the module to operate
at 1000Base-X (eg. older MikroTik QCA9xxx-based MIPS boards).
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] net: sfp: add quirks for GPON ONT SFP sticks
2026-04-06 12:48 ` Daniel Golle
@ 2026-04-06 13:23 ` John Pavlick
0 siblings, 0 replies; 3+ messages in thread
From: John Pavlick @ 2026-04-06 13:23 UTC (permalink / raw)
To: Daniel Golle
Cc: linux, andrew, hkallweit1, davem, edumazet, kuba, pabeni, netdev,
linux-kernel
Thank you for the review.
You are correct that the commit message was inaccurate — the Banana Pi R3 / MT7986 SerDes is not fixed at 2500base-X and does support 1000base-X and SGMII as well. I apologize for the
misleading description. I will send a v3 with a corrected commit message.
Regarding the concern about breaking 1G support on boards that do not support 2500base-X: sfp_quirk_2500basex only adds 2500base-X to the module's advertised capabilities via
linkmode_set_bit — it does not remove the 1000BASE-LX capability reported by the EEPROM. The kernel should still be able to negotiate 1G on boards that do not support 2500base-X. That
said, I do not have access to older MikroTik QCA9xxx-based hardware to test this, so I welcome any additional guidance.
> On 6 Apr 2026, at 14:48, Daniel Golle <daniel@makrotopia.org> wrote:
>
> On Mon, Apr 06, 2026 at 11:44:05AM +0000, John Pavlick wrote:
>> Several GPON ONT SFP sticks based on Realtek RTL960x report
>> 1000BASE-LX at 1300MBd in their EEPROM but can operate at 2500base-X.
>> On hosts with serdes fixed at 2.5Gbase-X (e.g. Banana Pi R3 / MT7986),
>> the kernel rejects them with 'no common interface modes'.
>
> While the quirks themselves may be correct, the statement above is wrong.
> The BananaPi R3 (and all MediaTek router SoCs) *do* support also
> 1000Base-X and SGMII, the SerDes is *not* "fixed at 2.5GBase-X". This
> can easily be verified by plugging a random 1Gbps SFP module into the
> board (eg. ubiquitous copper modules based on Marvell 88E1111 PHY).
>
> Also you have to make sure to not break support for those modules on
> boards which do not support 2500Base-X and need the module to operate
> at 1000Base-X (eg. older MikroTik QCA9xxx-based MIPS boards).
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-04-06 13:23 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-06 11:44 [PATCH] net: sfp: add quirks for GPON ONT SFP sticks John Pavlick
2026-04-06 12:48 ` Daniel Golle
2026-04-06 13:23 ` John Pavlick
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox