aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0277-net-phylink-call-mac_an_restart-for-SGMII-QSGMII-inb.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0277-net-phylink-call-mac_an_restart-for-SGMII-QSGMII-inb.patch')
-rw-r--r--target/linux/layerscape/patches-5.4/701-net-0277-net-phylink-call-mac_an_restart-for-SGMII-QSGMII-inb.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0277-net-phylink-call-mac_an_restart-for-SGMII-QSGMII-inb.patch b/target/linux/layerscape/patches-5.4/701-net-0277-net-phylink-call-mac_an_restart-for-SGMII-QSGMII-inb.patch
new file mode 100644
index 0000000000..487a520f32
--- /dev/null
+++ b/target/linux/layerscape/patches-5.4/701-net-0277-net-phylink-call-mac_an_restart-for-SGMII-QSGMII-inb.patch
@@ -0,0 +1,29 @@
+From d526228a8159d136c914c8f71d5944cda2f93d9a Mon Sep 17 00:00:00 2001
+From: Vladimir Oltean <vladimir.oltean@nxp.com>
+Date: Thu, 28 Nov 2019 03:21:53 +0200
+Subject: [PATCH] net: phylink: call mac_an_restart for SGMII/QSGMII inband
+ interfaces too
+
+It doesn't quite make sense why restarting the AN process should be
+unique to 802.3z (1000Base-X) modes. It is valid to put an SGMII PCS in
+in-band AN mode, therefore also make PHYLINK re-trigger an
+auto-negotiation if needed.
+
+Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
+---
+ drivers/net/phy/phylink.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/phy/phylink.c
++++ b/drivers/net/phy/phylink.c
+@@ -360,7 +360,9 @@ static void phylink_mac_config_up(struct
+ static void phylink_mac_an_restart(struct phylink *pl)
+ {
+ if (pl->link_config.an_enabled &&
+- phy_interface_mode_is_8023z(pl->link_config.interface))
++ (phy_interface_mode_is_8023z(pl->link_config.interface) ||
++ pl->link_config.interface == PHY_INTERFACE_MODE_SGMII ||
++ pl->link_config.interface == PHY_INTERFACE_MODE_QSGMII))
+ pl->ops->mac_an_restart(pl->config);
+ }
+