diff options
author | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2022-09-13 20:06:42 +0100 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2022-09-20 07:54:13 -0700 |
commit | 5029be761161374a3624aa7b4670174c35449bf5 (patch) | |
tree | da5cb02af13fbc6781917d40a9970e1514e6b0a7 /drivers/net/phy | |
parent | 275416754e9a262c97a1ad6f806a4bc6e0464aa2 (diff) | |
download | linux-5029be761161374a3624aa7b4670174c35449bf5.tar.gz |
net: sfp: move Huawei MA5671A fixup
Move this module over to the new fixup mechanism.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/phy')
-rw-r--r-- | drivers/net/phy/sfp.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c index 2ef7bb4c00d1..d2d66c691f97 100644 --- a/drivers/net/phy/sfp.c +++ b/drivers/net/phy/sfp.c @@ -316,6 +316,11 @@ static void sfp_fixup_long_startup(struct sfp *sfp) sfp->module_t_start_up = T_START_UP_BAD_GPON; } +static void sfp_fixup_ignore_tx_fault(struct sfp *sfp) +{ + sfp->tx_fault_ignore = true; +} + static void sfp_quirk_2500basex(const struct sfp_eeprom_id *id, unsigned long *modes) { @@ -353,6 +358,7 @@ static const struct sfp_quirk sfp_quirks[] = { .vendor = "HUAWEI", .part = "MA5671A", .modes = sfp_quirk_2500basex, + .fixup = sfp_fixup_ignore_tx_fault, }, { // Lantech 8330-262D-E can operate at 2500base-X, but // incorrectly report 2500MBd NRZ in their EEPROM @@ -2011,11 +2017,7 @@ static int sfp_sm_mod_probe(struct sfp *sfp, bool report) sfp->module_t_start_up = T_START_UP; - if (!memcmp(id.base.vendor_name, "HUAWEI ", 16) && - !memcmp(id.base.vendor_pn, "MA5671A ", 16)) - sfp->tx_fault_ignore = true; - else - sfp->tx_fault_ignore = false; + sfp->tx_fault_ignore = false; sfp->quirk = sfp_lookup_quirk(&id); if (sfp->quirk && sfp->quirk->fixup) |