diff mbox series

net: sfp: add quirk for Finisar FTLF8536P4BCL

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

Checks

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

Commit Message

Paul Menzel Oct. 13, 2021, 10:45 a.m. UTC
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>
---
 drivers/net/phy/sfp-bus.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

Comments

Russell King (Oracle) Oct. 14, 2021, 4:49 p.m. UTC | #1
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.
Vadym Kochan Oct. 18, 2021, 11:05 a.m. UTC | #2
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
Russell King (Oracle) Oct. 18, 2021, 2:47 p.m. UTC | #3
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 mbox series

Patch

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)