summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King (Oracle) <rmk+kernel@armlinux.org.uk>2021-12-09 16:11:38 +0300
committerJakub Kicinski <kuba@kernel.org>2021-12-09 22:21:03 +0300
commit0a9f0794d9bd67e590a9488afe87fbb0419d9539 (patch)
tree2c01ca531465f02fd7f37a1ae6ff35555ab6e2e0
parent3e5b1feccea7db576353ffc302f78d522e4116e6 (diff)
downloadlinux-0a9f0794d9bd67e590a9488afe87fbb0419d9539.tar.xz
net: dsa: mark DSA phylink as legacy_pre_march2020
The majority of DSA drivers do not make use of the PCS support, and thus operate in legacy mode. In order to preserve this behaviour in future, we need to set the legacy_pre_march2020 flag so phylink knows this may require the legacy calls. There are some DSA drivers that do make use of PCS support, and these will continue operating as before - legacy_pre_march2020 will not prevent split-PCS support enabling the newer phylink behaviour. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--net/dsa/port.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/dsa/port.c b/net/dsa/port.c
index 20f183213cbc..05677e016982 100644
--- a/net/dsa/port.c
+++ b/net/dsa/port.c
@@ -1098,6 +1098,13 @@ int dsa_port_phylink_create(struct dsa_port *dp)
if (err)
mode = PHY_INTERFACE_MODE_NA;
+ /* Presence of phylink_mac_link_state or phylink_mac_an_restart is
+ * an indicator of a legacy phylink driver.
+ */
+ if (ds->ops->phylink_mac_link_state ||
+ ds->ops->phylink_mac_an_restart)
+ dp->pl_config.legacy_pre_march2020 = true;
+
if (ds->ops->phylink_get_caps)
ds->ops->phylink_get_caps(ds, dp->index, &dp->pl_config);