1 From ecaa542cfed078dbc356dadff0bad4b6a8e704a0 Mon Sep 17 00:00:00 2001
2 From: Russell King <rmk+kernel@armlinux.org.uk>
3 Date: Fri, 17 May 2019 10:14:45 +0100
4 Subject: [PATCH 641/660] net: sfp: add some quirks for GPON modules
6 Marc Micalizzi reports that Huawei MA5671A and Alcatel/Lucent G-010S-P
7 modules are capable of 2500base-X, but incorrectly report their
8 capabilities in the EEPROM. It seems rather common that GPON modules
11 Let's fix these modules by adding some quirks.
13 Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
15 drivers/net/phy/sfp-bus.c | 25 +++++++++++++++++++++++++
16 1 file changed, 25 insertions(+)
18 --- a/drivers/net/phy/sfp-bus.c
19 +++ b/drivers/net/phy/sfp-bus.c
20 @@ -38,7 +38,32 @@ struct sfp_bus {
24 +static void sfp_quirk_2500basex(const struct sfp_eeprom_id *id,
25 + unsigned long *modes)
27 + phylink_set(modes, 2500baseX_Full);
30 static const struct sfp_quirk sfp_quirks[] = {
32 + // Alcatel Lucent G-010S-P can operate at 2500base-X, but
33 + // incorrectly report 2500MBd NRZ in their EEPROM
34 + .vendor = "ALCATELLUCENT",
36 + .modes = sfp_quirk_2500basex,
38 + // Alcatel Lucent G-010S-A can operate at 2500base-X, but
39 + // report 3.2GBd NRZ in their EEPROM
40 + .vendor = "ALCATELLUCENT",
41 + .part = "3FE46541AA",
42 + .modes = sfp_quirk_2500basex,
44 + // Huawei MA5671A can operate at 2500base-X, but report 1.2GBd
45 + // NRZ in their EEPROM
48 + .modes = sfp_quirk_2500basex,
52 static size_t sfp_strlen(const char *str, size_t maxlen)