net: sfp: add 2500base-X quirk for Lantech SFP module
authorMichael Walle <michael@walle.cc>
Sat, 12 Mar 2022 20:50:14 +0000 (21:50 +0100)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 15 Mar 2022 10:41:20 +0000 (11:41 +0100)
The Lantech 8330-262D-E module is 2500base-X capable, but it reports the
nominal bitrate as 2500MBd instead of 3125MBd. Add a quirk for the
module.

The following in an EEPROM dump of such a SFP with the serial number
redacted:

00: 03 04 07 00 00 00 01 20 40 0c 05 01 19 00 00 00    ???...? @????...
10: 1e 0f 00 00 4c 61 6e 74 65 63 68 20 20 20 20 20    ??..Lantech
20: 20 20 20 20 00 00 00 00 38 33 33 30 2d 32 36 32        ....8330-262
30: 44 2d 45 20 20 20 20 20 56 31 2e 30 03 52 00 cb    D-E     V1.0?R.?
40: 00 1a 00 00 46 43 XX XX XX XX XX XX XX XX XX XX    .?..FCXXXXXXXXXX
50: 20 20 20 20 32 32 30 32 31 34 20 20 68 b0 01 98        220214  h???
60: 45 58 54 52 45 4d 45 4c 59 20 43 4f 4d 50 41 54    EXTREMELY COMPAT
70: 49 42 4c 45 20 20 20 20 20 20 20 20 20 20 20 20    IBLE

Signed-off-by: Michael Walle <michael@walle.cc>
Link: https://lore.kernel.org/r/20220312205014.4154907-1-michael@walle.cc
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/phy/sfp-bus.c

index c1512c9..15aa5ac 100644 (file)
@@ -75,6 +75,12 @@ static const struct sfp_quirk sfp_quirks[] = {
                .part = "MA5671A",
                .modes = sfp_quirk_2500basex,
        }, {
+               // Lantech 8330-262D-E can operate at 2500base-X, but
+               // incorrectly report 2500MBd NRZ in their EEPROM
+               .vendor = "Lantech",
+               .part = "8330-262D-E",
+               .modes = sfp_quirk_2500basex,
+       }, {
                .vendor = "UBNT",
                .part = "UF-INSTANT",
                .modes = sfp_quirk_ubnt_uf_instant,