net: sfp: improve Huawei MA5671a fixup
Subsystems (4)
PATCH v2 1/1 net: sfp: improve Huawei MA5671a fixup
With the current sfp_fixup_ignore_tx_fault() fixup we ignore the TX_FAULT signal, but we also need to apply sfp_fixup_ignore_los() in order to be able to communicate with the module even if the fiber isn't connected for configuration purposes.
This is needed for all the MA5671a firmwares, excluding the FS modded firmware.
---
v2: rebase on top of net/main instead of linux/master
drivers/net/phy/sfp.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
drivers/net/phy/sfp.c +7 -1
@@ -372,6 +372,12 @@ static void sfp_fixup_ignore_hw(struct sfp *sfp, unsigned int mask) sfp->state_hw_mask &= ~mask; } +static void sfp_fixup_huawei (struct sfp *sfp) +{ +sfp_fixup_ignore_tx_fault (sfp); +sfp_fixup_ignore_los (sfp); +} +static void sfp_fixup_nokia (struct sfp *sfp) {sfp_fixup_long_startup (sfp);
@@ -530,7 +536,7 @@ static const struct sfp_quirk sfp_quirks[] = {// Huawei MA5671A can operate at 2500base-X, but report 1.2GBd NRZ in // their EEPROM SFP_QUIRK ("HUAWEI" ,"MA5671A" , sfp_quirk_2500basex, - sfp_fixup_ignore_tx_fault), + sfp_fixup_huawei),// Lantech 8330-262D-E and 8330-265D can operate at 2500base-X, but // incorrectly report 2500MBd NRZ in their EEPROM.
Signature · 1 line
2.47.3
Andrew Lunn
maintainerQuoted 1 line
+static void
sfp_fixup_huawei(struct sfp *sfp)
Please avoid using a vendor name. It is unlikely just this vendor produces an SFP broken like this, other vendors will break their SFPs in the same way. And then we will want to reuse this helper.
So maybe sfp_fixup_ignore_tx_fault_and_loss()?
Andrew
Quoted 6 lines · Andrew Lunn
Quoted 2 lines
+static void
sfp_fixup_huawei(struct sfp *sfp)Please avoid using a vendor name. It is unlikely just this vendor produces an SFP broken like this, other vendors will break their SFPs in the same way. And then we will want to reuse this helper.
I just followed the same logic used for sfp_fixup_nokia()
https://github.com/torvalds/linux/blob/5ee8dbf54602dc340d6235b1d6aa17c0f283f48c/drivers/net/phy/sfp.c#L375-L379
Quoted 2 lines
So maybe
sfp_fixup_ignore_tx_fault_and_loss()?
Sure, I can change that in v3.
Quoted 2 lines
Andrew
Best regards,
Álvaro.
Jakub Kicinski
maintainerQuoted 6 lines · On Thu, 5 Mar 2026 13:50:32 +0100 Álvaro Fernández Rojas wrote:
With the current
sfp_fixup_ignore_tx_fault()fixup we ignore theTX_FAULTsignal, but we also need to applysfp_fixup_ignore_los()in order to be able to communicate with the module even if the fiber isn't connected for configuration purposes.
This is needed for all the MA5671a firmwares, excluding the FS modded firmware.
Also please don't repost things more than once in a 24h period per:
https://www.kernel.org/doc/html/next/process/maintainer-netdev.html
Andrew could have given you the same feedback on v1 :/
Quoted 9 lines · Jakub Kicinski
Quoted 6 lines · On Thu, 5 Mar 2026 13:50:32 +0100 Álvaro Fernández Rojas wrote:
With the current
sfp_fixup_ignore_tx_fault()fixup we ignore theTX_FAULTsignal, but we also need to applysfp_fixup_ignore_los()in order to be able to communicate with the module even if the fiber isn't connected for configuration purposes.
This is needed for all the MA5671a firmwares, excluding the FS modded firmware.
Quoted 4 lines
Also please don't repost things more than once in a 24h period per:
https://www.kernel.org/doc/html/next/process/maintainer-netdev.htmlAndrew could have given you the same feedback on v1 :/
I'm really sorry for the trouble.