From: Russell King <[email protected]>

[ Upstream commit b0eae33b2583dceb36224619f9fd85e6140ae594 ]

Marc Micalizzi reports that Huawei MA5671A and Alcatel/Lucent G-010S-P
modules are capable of 2500base-X, but incorrectly report their
capabilities in the EEPROM.  It seems rather common that GPON modules
mis-report.

Let's fix these modules by adding some quirks.

Signed-off-by: Russell King <[email protected]>
Reviewed-by: Andrew Lunn <[email protected]>
Reviewed-by: Florian Fainelli <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
 drivers/net/phy/sfp-bus.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/drivers/net/phy/sfp-bus.c b/drivers/net/phy/sfp-bus.c
index 35caf2eb2c275..816e59fe68f57 100644
--- a/drivers/net/phy/sfp-bus.c
+++ b/drivers/net/phy/sfp-bus.c
@@ -37,7 +37,32 @@ struct sfp_bus {
        bool started;
 };
 
+static void sfp_quirk_2500basex(const struct sfp_eeprom_id *id,
+                               unsigned long *modes)
+{
+       phylink_set(modes, 2500baseX_Full);
+}
+
 static const struct sfp_quirk sfp_quirks[] = {
+       {
+               // Alcatel Lucent G-010S-P can operate at 2500base-X, but
+               // incorrectly report 2500MBd NRZ in their EEPROM
+               .vendor = "ALCATELLUCENT",
+               .part = "G010SP",
+               .modes = sfp_quirk_2500basex,
+       }, {
+               // Alcatel Lucent G-010S-A can operate at 2500base-X, but
+               // report 3.2GBd NRZ in their EEPROM
+               .vendor = "ALCATELLUCENT",
+               .part = "3FE46541AA",
+               .modes = sfp_quirk_2500basex,
+       }, {
+               // Huawei MA5671A can operate at 2500base-X, but report 1.2GBd
+               // NRZ in their EEPROM
+               .vendor = "HUAWEI",
+               .part = "MA5671A",
+               .modes = sfp_quirk_2500basex,
+       },
 };
 
 static size_t sfp_strlen(const char *str, size_t maxlen)
-- 
2.25.1



Reply via email to