Message ID | 20211013104542.14146-1-pmenzel@molgen.mpg.de (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: sfp: add quirk for Finisar FTLF8536P4BCL | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Single patches do not need cover letters |
netdev/fixes_present | success | Fixes tag not required for -next series |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Guessed tree name to be net-next |
netdev/subject_prefix | warning | Target tree name not specified in the subject |
netdev/cc_maintainers | success | CCed 6 of 6 maintainers |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Signed-off-by tag matches author and committer |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 1 this patch: 1 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | No Fixes tag |
netdev/checkpatch | warning | WARNING: line length of 84 exceeds 80 columns |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 1 this patch: 1 |
netdev/header_inline | success | No static functions without inline keyword in header files |
On Wed, Oct 13, 2021 at 12:45:42PM +0200, Paul Menzel wrote: > From: Taras Chornyi <taras.chornyi@plvision.eu> > > Finisar FTLF8536P4BCL can operate at 1000base-X and 10000base-SR, but > reports 25G & 100GBd SR in it's EEPROM. > > Signed-off-by: Vadym Kochan <vadym.kochan@plvision.eu> > Signed-off-by: Taras Chornyi <taras.chornyi@plvision.eu> > > [Upstream from https://github.com/dentproject/dentOS/pull/133/commits/b87b10ef72ea4638e80588facf3c9c2c1be67b40] > > Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de> Hi Paul, Please can you send me the file resulting from: ethtool -m ethX raw on > file please - it will be binary data, and that is exactly what I'm after. I would like to see what the EEPROM contains before making a decision on this patch. Thanks.
Hi Russel, Russell King (Oracle) <linux@armlinux.org.uk> writes: > On Wed, Oct 13, 2021 at 12:45:42PM +0200, Paul Menzel wrote: >> From: Taras Chornyi <taras.chornyi@plvision.eu> >> >> Finisar FTLF8536P4BCL can operate at 1000base-X and 10000base-SR, but >> reports 25G & 100GBd SR in it's EEPROM. >> >> Signed-off-by: Vadym Kochan <vadym.kochan@plvision.eu> >> Signed-off-by: Taras Chornyi <taras.chornyi@plvision.eu> >> >> [Upstream from https://github.com/dentproject/dentOS/pull/133/commits/b87b10ef72ea4638e80588facf3c9c2c1be67b40] >> >> Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de> > > Hi Paul, > > Please can you send me the file resulting from: > > ethtool -m ethX raw on > file > > please - it will be binary data, and that is exactly what I'm after. > I would like to see what the EEPROM contains before making a decision > on this patch. > > Thanks. Attached output of ethtool: Also adding hexdump version to have it in mail: 00000000 03 04 07 00 00 00 00 00 00 00 00 06 ff 00 00 00 |................| 00000010 02 00 0a 07 46 49 4e 49 53 41 52 20 43 4f 52 50 |....FINISAR CORP| 00000020 2e 20 20 20 02 00 90 65 46 54 4c 46 38 35 33 36 |. ...eFTLF8536| 00000030 50 34 42 43 4c 20 20 20 41 20 20 20 03 52 00 b8 |P4BCL A .R..| 00000040 08 1a 70 00 55 55 48 32 30 46 4c 20 20 20 20 20 |..p.UUH20FL | 00000050 20 20 20 20 31 36 30 32 31 32 20 20 68 f0 08 64 | 160212 h..d| 00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000100 4b 00 fb 00 46 00 00 00 8c a0 75 30 88 b8 79 18 |K...F.....u0..y.| 00000110 17 70 01 f4 16 76 03 e8 3d e9 04 eb 31 2d 06 31 |.p...v..=...1-.1| 00000120 4d f1 00 64 3d e9 00 9e 00 00 00 00 00 00 00 00 |M..d=...........| 00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000140 00 00 00 00 3f 80 00 00 00 00 00 00 00 01 00 00 |....?...........| 00000150 00 01 00 00 00 01 00 00 00 01 00 00 00 00 00 f4 |................| 00000160 26 f1 83 b6 00 51 00 00 0a c6 00 1e 24 4b b0 00 |&....Q......$K..| 00000170 05 28 00 00 05 28 00 00 00 00 00 00 00 00 00 01 |.(...(..........| 00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200
On Wed, Oct 13, 2021 at 12:45:42PM +0200, Paul Menzel wrote: > From: Taras Chornyi <taras.chornyi@plvision.eu> > > Finisar FTLF8536P4BCL can operate at 1000base-X and 10000base-SR, but > reports 25G & 100GBd SR in it's EEPROM. > > Signed-off-by: Vadym Kochan <vadym.kochan@plvision.eu> > Signed-off-by: Taras Chornyi <taras.chornyi@plvision.eu> > > [Upstream from https://github.com/dentproject/dentOS/pull/133/commits/b87b10ef72ea4638e80588facf3c9c2c1be67b40] > > Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de> Thanks Vadym for the eeprom dump. > diff --git a/drivers/net/phy/sfp-bus.c b/drivers/net/phy/sfp-bus.c > index 7362f8c3271c..162b4030a863 100644 > --- a/drivers/net/phy/sfp-bus.c > +++ b/drivers/net/phy/sfp-bus.c > @@ -55,6 +55,13 @@ static void sfp_quirk_ubnt_uf_instant(const struct sfp_eeprom_id *id, > phylink_set(modes, 1000baseX_Full); > } > > +static void sfp_quirk_finisar_25g(const struct sfp_eeprom_id *id, > + unsigned long *modes) > +{ > + phylink_set(modes, 1000baseX_Full); > + phylink_set(modes, 10000baseSR_Full); > +} I'd ask that this is named "sfp_quirk_1g10g()" please - it isn't doing anything that is specific to Finisar, it is merely stating that 1000base-X and 10000base-SR are supported. > + }, { > + // Finisar FTLF8536P4BCL can operate at 1000base-X and 10000base-SR, > + // but reports 25G & 100GBd SR in it's EEPROM This file doesn't wrap over column 80, so please continue to keeping it that way. // Finisar FTLF8536P4BCL can operate at 1000base-X and // 10000base-SR, but reports 25G & 100GBd SR in it's EEPROM Thanks.
diff --git a/drivers/net/phy/sfp-bus.c b/drivers/net/phy/sfp-bus.c index 7362f8c3271c..162b4030a863 100644 --- a/drivers/net/phy/sfp-bus.c +++ b/drivers/net/phy/sfp-bus.c @@ -55,6 +55,13 @@ static void sfp_quirk_ubnt_uf_instant(const struct sfp_eeprom_id *id, phylink_set(modes, 1000baseX_Full); } +static void sfp_quirk_finisar_25g(const struct sfp_eeprom_id *id, + unsigned long *modes) +{ + phylink_set(modes, 1000baseX_Full); + phylink_set(modes, 10000baseSR_Full); +} + static const struct sfp_quirk sfp_quirks[] = { { // Alcatel Lucent G-010S-P can operate at 2500base-X, but @@ -78,7 +85,13 @@ static const struct sfp_quirk sfp_quirks[] = { .vendor = "UBNT", .part = "UF-INSTANT", .modes = sfp_quirk_ubnt_uf_instant, - }, + }, { + // Finisar FTLF8536P4BCL can operate at 1000base-X and 10000base-SR, + // but reports 25G & 100GBd SR in it's EEPROM + .vendor = "FINISAR CORP.", + .part = "FTLF8536P4BCL", + .modes = sfp_quirk_finisar_25g, + } }; static size_t sfp_strlen(const char *str, size_t maxlen)