commit | 804cd3005b3ca95cf0f7dc899bd0dda99607edef | [log] [tgz] |
---|---|---|
author | developer <developer@mediatek.com> | Thu May 11 19:02:14 2023 +0800 |
committer | developer <developer@mediatek.com> | Fri May 12 13:07:05 2023 +0800 |
tree | 4f017a2fcc02266f4b9a8e51a687a359bec85c7c | |
parent | 683be527834c25579b024049767d0a982c4474a9 [diff] |
[][kernel][common][eth][Add 1000basex AN support for the SGMII] [Description] Add 1000basex AN support for the SGMII. If without this patch, some SFP Optical modules might not link up with the link partner. [Release-log] N/A Change-Id: I256726f7d5f1e7bc99f0b2293c7290352a0f3fc6 Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/7479629
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c index c42b28a..4841134 100755 --- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c +++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_sgmii.c
@@ -424,6 +424,17 @@ sgm_mode = SGMII_IF_MODE_SGMII | SGMII_REMOTE_FAULT_DIS | SGMII_SPEED_DUPLEX_AN; + } else if (phylink_autoneg_inband(mode)) { + /* 1000base-X or HSGMII with autoneg */ + if (interface == PHY_INTERFACE_MODE_2500BASEX) + return -EINVAL; + + bmcr = linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, + advertising) ? SGMII_AN_ENABLE : 0; + if (bmcr) + sgm_mode = SGMII_SPEED_DUPLEX_AN; + else + speed = SGMII_SPEED_1000; } else { /* 1000base-X or HSGMII without autoneg */ speed = SGMII_SPEED_1000;