diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2022-11-14 18:07:30 +0100 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2022-11-16 05:34:27 +0100 |
commit | 53d04b9811107633f25be02a5d981a6070d09e6e (patch) | |
tree | 19eb89458e3073188daaa58d57a913ed6ba9cd52 /net/dsa/port.c | |
parent | net: mscc: ocelot: drop workaround for forcing RX flow control (diff) | |
download | linux-53d04b9811107633f25be02a5d981a6070d09e6e.tar.xz linux-53d04b9811107633f25be02a5d981a6070d09e6e.zip |
net: dsa: remove phylink_validate() method
As of now, no DSA driver uses a custom link mode validation procedure
anymore. So remove this DSA operation and let phylink determine what is
supported based on config->mac_capabilities (if provided by the driver).
Leave a comment why we left the code that we did, and that there is more
work to do.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/dsa/port.c')
-rw-r--r-- | net/dsa/port.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/net/dsa/port.c b/net/dsa/port.c index 208168276995..48c9eaa74aee 100644 --- a/net/dsa/port.c +++ b/net/dsa/port.c @@ -1536,16 +1536,14 @@ static void dsa_port_phylink_validate(struct phylink_config *config, unsigned long *supported, struct phylink_link_state *state) { - struct dsa_port *dp = container_of(config, struct dsa_port, pl_config); - struct dsa_switch *ds = dp->ds; - - 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); + /* Skip call for drivers which don't yet set mac_capabilities, + * since validating in that case would mean their PHY will advertise + * nothing. In turn, skipping validation makes them advertise + * everything that the PHY supports, so those drivers should be + * converted ASAP. + */ + if (config->mac_capabilities) + phylink_generic_validate(config, supported, state); } static void dsa_port_phylink_mac_pcs_get_state(struct phylink_config *config, |