Message ID | E1mpwRd-00D8L2-Aq@rmk-PC.armlinux.org.uk (mailing list archive) |
---|---|
State | RFC |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Allow DSA drivers to set all phylink capabilities | expand |
On Wed, Nov 24, 2021 at 05:52:33PM +0000, Russell King (Oracle) wrote: > 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. > > Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> > --- Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> > 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 eaa66114924b..d928be884f01 100644 > --- a/net/dsa/port.c > +++ b/net/dsa/port.c > @@ -981,8 +981,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.30.2 >
diff --git a/net/dsa/port.c b/net/dsa/port.c index eaa66114924b..d928be884f01 100644 --- a/net/dsa/port.c +++ b/net/dsa/port.c @@ -981,8 +981,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); }
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. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> --- net/dsa/port.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)