aboutsummaryrefslogtreecommitdiff
path: root/target/linux/generic/hack-6.1
diff options
context:
space:
mode:
authorDaniel Golle <daniel@makrotopia.org>2024-01-28 03:36:40 +0000
committerDaniel Golle <daniel@makrotopia.org>2024-02-15 19:06:36 +0000
commitd40756563c46bf8c24f183eda174e1ed01f78444 (patch)
treef2f759b11411890d8c8c56b1aec1276e7ae7b688 /target/linux/generic/hack-6.1
parentda970d63fb52fb50915f7f94aaf1d8e0b158b7d3 (diff)
kernel: backport phylink changes from mainline Linux
Let's pick a bunch of useful phylink changes which allow us to keep drivers in sync with mainline Linux. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Diffstat (limited to 'target/linux/generic/hack-6.1')
-rw-r--r--target/linux/generic/hack-6.1/750-net-pcs-mtk-lynxi-workaround-2500BaseX-no-an.patch22
-rw-r--r--target/linux/generic/hack-6.1/790-SFP-GE-T-ignore-TX_FAULT.patch2
2 files changed, 12 insertions, 12 deletions
diff --git a/target/linux/generic/hack-6.1/750-net-pcs-mtk-lynxi-workaround-2500BaseX-no-an.patch b/target/linux/generic/hack-6.1/750-net-pcs-mtk-lynxi-workaround-2500BaseX-no-an.patch
index 8b7f2f0955..30ed515c3e 100644
--- a/target/linux/generic/hack-6.1/750-net-pcs-mtk-lynxi-workaround-2500BaseX-no-an.patch
+++ b/target/linux/generic/hack-6.1/750-net-pcs-mtk-lynxi-workaround-2500BaseX-no-an.patch
@@ -40,14 +40,14 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
+ phylink_mii_c22_pcs_decode_state(state, bmsr, FIELD_GET(SGMII_LPA, adv));
}
- static int mtk_pcs_lynxi_config(struct phylink_pcs *pcs, unsigned int mode,
-@@ -134,7 +143,8 @@ static int mtk_pcs_lynxi_config(struct p
- /* 1000base-X or 2500base-X autoneg */
- sgm_mode = SGMII_REMOTE_FAULT_DIS;
- use_an = linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
-- advertising);
-+ advertising) &&
-+ !(interface == PHY_INTERFACE_MODE_2500BASEX);
- } else {
- /* 1000base-X or 2500base-X without autoneg */
- sgm_mode = 0;
+ static int mtk_pcs_lynxi_config(struct phylink_pcs *pcs, unsigned int neg_mode,
+@@ -130,7 +139,8 @@ static int mtk_pcs_lynxi_config(struct p
+ if (neg_mode & PHYLINK_PCS_NEG_INBAND)
+ sgm_mode |= SGMII_REMOTE_FAULT_DIS;
+
+- if (neg_mode == PHYLINK_PCS_NEG_INBAND_ENABLED) {
++ if (neg_mode == PHYLINK_PCS_NEG_INBAND_ENABLED &&
++ interface != PHY_INTERFACE_MODE_2500BASEX) {
+ if (interface == PHY_INTERFACE_MODE_SGMII)
+ sgm_mode |= SGMII_SPEED_DUPLEX_AN;
+ bmcr = BMCR_ANENABLE;
diff --git a/target/linux/generic/hack-6.1/790-SFP-GE-T-ignore-TX_FAULT.patch b/target/linux/generic/hack-6.1/790-SFP-GE-T-ignore-TX_FAULT.patch
index 27c87d5b65..bb21bb39d3 100644
--- a/target/linux/generic/hack-6.1/790-SFP-GE-T-ignore-TX_FAULT.patch
+++ b/target/linux/generic/hack-6.1/790-SFP-GE-T-ignore-TX_FAULT.patch
@@ -46,7 +46,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
} else if (event == SFP_E_TIMEOUT || event == SFP_E_TX_CLEAR) {
init_done:
/* Create mdiobus and start trying for PHY */
-@@ -2573,10 +2577,12 @@ static void sfp_check_state(struct sfp *
+@@ -2578,10 +2582,12 @@ static void sfp_check_state(struct sfp *
mutex_lock(&sfp->st_mutex);
state = sfp_get_state(sfp);
changed = state ^ sfp->state;