aboutsummaryrefslogtreecommitdiff
path: root/pkgs/patches-linux-5.15/781-v5.17-4-net-dsa-support-use-of-phylink_generic_validate.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/patches-linux-5.15/781-v5.17-4-net-dsa-support-use-of-phylink_generic_validate.patch')
-rw-r--r--pkgs/patches-linux-5.15/781-v5.17-4-net-dsa-support-use-of-phylink_generic_validate.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/pkgs/patches-linux-5.15/781-v5.17-4-net-dsa-support-use-of-phylink_generic_validate.patch b/pkgs/patches-linux-5.15/781-v5.17-4-net-dsa-support-use-of-phylink_generic_validate.patch
new file mode 100644
index 0000000..6720e55
--- /dev/null
+++ b/pkgs/patches-linux-5.15/781-v5.17-4-net-dsa-support-use-of-phylink_generic_validate.patch
@@ -0,0 +1,46 @@
+From 3943c373f8848128218a8cceba63511ffcc09a9d Mon Sep 17 00:00:00 2001
+From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
+Date: Tue, 30 Nov 2021 13:10:06 +0000
+Subject: [PATCH 4/6] net: dsa: support use of phylink_generic_validate()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Support the use of phylink_generic_validate() when there is no
+phylink_validate method given in the DSA switch operations and
+mac_capabilities have been set in the phylink_config structure by the
+DSA switch driver.
+
+This gives DSA switch drivers the option to use this if they provide
+the supported_interfaces and mac_capabilities, while still giving them
+an option to override the default implementation if necessary.
+
+Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
+Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
+Reviewed-by: Marek BehĂșn <kabel@kernel.org>
+Reviewed-by: Andrew Lunn <andrew@lunn.ch>
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+---
+ net/dsa/port.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/net/dsa/port.c b/net/dsa/port.c
+index eed1b5397dc7..371d25606546 100644
+--- a/net/dsa/port.c
++++ b/net/dsa/port.c
+@@ -985,8 +985,11 @@ static void dsa_port_phylink_validate(struct phylink_config *config,
+ struct dsa_port *dp = container_of(config, struct dsa_port, pl_config);
+ struct dsa_switch *ds = dp->ds;
+
+- if (!ds->ops->phylink_validate)
++ if (!ds->ops->phylink_validate) {
++ if (config->mac_capabilities)
++ phylink_generic_validate(config, supported, state);
+ return;
++ }
+
+ ds->ops->phylink_validate(ds, dp->index, supported, state);
+ }
+--
+2.35.1
+