mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2025-12-19 19:12:09 -05:00
generic: add quirk for HG MXPD-483II 2500M fiber SFP
The HG MXPD-483II 1310nm SFP module is meant to operate with 2500Base-X,
however, in their EEPROM they incorrectly specify:
Transceiver type : Ethernet: 1000BASE-LX
...
BR, Nominal : 2600MBd
Use sfp_quirk_2500basex for this module to allow 2500Base-X mode anyway.
https://forum.banana-pi.org/t/bpi-r3-sfp-module-compatibility/14573/60
X-Patchwork-Id: 13197378
X-Mailing-List: netdev@vger.kernel.org
X-Patchwork-Delegate: kuba@kernel.org
Reported-by: chowtom <chowtom@gmail.com>
Tested-by: chowtom <chowtom@gmail.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
parent
4d9c38d654
commit
658b45ce48
@ -26,7 +26,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||||||
|
|
||||||
--- a/drivers/net/phy/sfp.c
|
--- a/drivers/net/phy/sfp.c
|
||||||
+++ b/drivers/net/phy/sfp.c
|
+++ b/drivers/net/phy/sfp.c
|
||||||
@@ -373,6 +373,11 @@ static const struct sfp_quirk sfp_quirks
|
@@ -377,6 +377,11 @@ static const struct sfp_quirk sfp_quirks
|
||||||
.modes = sfp_quirk_2500basex,
|
.modes = sfp_quirk_2500basex,
|
||||||
.fixup = sfp_fixup_ignore_tx_fault,
|
.fixup = sfp_fixup_ignore_tx_fault,
|
||||||
}, {
|
}, {
|
||||||
@ -38,7 +38,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||||||
// Lantech 8330-262D-E can operate at 2500base-X, but
|
// Lantech 8330-262D-E can operate at 2500base-X, but
|
||||||
// incorrectly report 2500MBd NRZ in their EEPROM
|
// incorrectly report 2500MBd NRZ in their EEPROM
|
||||||
.vendor = "Lantech",
|
.vendor = "Lantech",
|
||||||
@@ -2306,7 +2311,8 @@ static void sfp_sm_main(struct sfp *sfp,
|
@@ -2310,7 +2315,8 @@ static void sfp_sm_main(struct sfp *sfp,
|
||||||
* or t_start_up, so assume there is a fault.
|
* or t_start_up, so assume there is a fault.
|
||||||
*/
|
*/
|
||||||
sfp_sm_fault(sfp, SFP_S_INIT_TX_FAULT,
|
sfp_sm_fault(sfp, SFP_S_INIT_TX_FAULT,
|
||||||
@ -48,7 +48,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||||||
} else if (event == SFP_E_TIMEOUT || event == SFP_E_TX_CLEAR) {
|
} else if (event == SFP_E_TIMEOUT || event == SFP_E_TX_CLEAR) {
|
||||||
init_done:
|
init_done:
|
||||||
sfp->sm_phy_retries = R_PHY_RETRY;
|
sfp->sm_phy_retries = R_PHY_RETRY;
|
||||||
@@ -2529,10 +2535,12 @@ static void sfp_check_state(struct sfp *
|
@@ -2533,10 +2539,12 @@ static void sfp_check_state(struct sfp *
|
||||||
mutex_lock(&sfp->st_mutex);
|
mutex_lock(&sfp->st_mutex);
|
||||||
state = sfp_get_state(sfp);
|
state = sfp_get_state(sfp);
|
||||||
changed = state ^ sfp->state;
|
changed = state ^ sfp->state;
|
||||||
|
|||||||
@ -0,0 +1,13 @@
|
|||||||
|
--- a/drivers/net/phy/sfp.c
|
||||||
|
+++ b/drivers/net/phy/sfp.c
|
||||||
|
@@ -366,6 +366,10 @@ static const struct sfp_quirk sfp_quirks
|
||||||
|
.part = "HL-GSFP",
|
||||||
|
.fixup = sfp_fixup_halny_gsfp,
|
||||||
|
}, {
|
||||||
|
+ .vendor = "HG GENUINE",
|
||||||
|
+ .part = "MXPD-483II",
|
||||||
|
+ .modes = sfp_quirk_2500basex,
|
||||||
|
+ }, {
|
||||||
|
// Huawei MA5671A can operate at 2500base-X, but report 1.2GBd
|
||||||
|
// NRZ in their EEPROM
|
||||||
|
.vendor = "HUAWEI",
|
||||||
Loading…
Reference in New Issue
Block a user