net: sfp: ignore power level 3 prior to SFF-8472 Rev 11.4
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Fri, 21 Oct 2022 15:09:54 +0000 (16:09 +0100)
committerJakub Kicinski <kuba@kernel.org>
Tue, 25 Oct 2022 04:06:12 +0000 (21:06 -0700)
Power level 3 was included in SFF-8472 revision 11.9, but this does
not have a compliance code. Use revision 11.4 as the minimum
compliance level instead.

This should avoid any spurious indication of 2W modules.

Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/sfp.c

index a7635b0..af676e2 100644 (file)
@@ -1764,7 +1764,9 @@ static int sfp_module_parse_power(struct sfp *sfp)
        if (sfp->id.ext.sff8472_compliance >= SFP_SFF8472_COMPLIANCE_REV10_2 &&
            sfp->id.ext.options & cpu_to_be16(SFP_OPTIONS_POWER_DECL))
                power_mW = 1500;
-       if (sfp->id.ext.options & cpu_to_be16(SFP_OPTIONS_HIGH_POWER_LEVEL))
+       /* Added in Rev 11.9, but there is no compliance code for this */
+       if (sfp->id.ext.sff8472_compliance >= SFP_SFF8472_COMPLIANCE_REV11_4 &&
+           sfp->id.ext.options & cpu_to_be16(SFP_OPTIONS_HIGH_POWER_LEVEL))
                power_mW = 2000;
 
        /* Power level 1 modules (max. 1W) are always supported. */