Message ID | E1tMBRQ-006vat-7F@rmk-PC.armlinux.org.uk (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [net-next,1/5] net: phylink: add support for PCS supported_interfaces bitmap | expand |
Hi Russell, On Fri, 13 Dec 2024 19:35:12 +0000 "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk> wrote: > Use the PCS' supported_interfaces member to build the MAC level > supported_interfaces bitmap. > > Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> > --- > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > index d45fd7a3acd5..0e45c4a48bb5 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > @@ -1206,6 +1206,7 @@ static int stmmac_phy_setup(struct stmmac_priv *priv) > struct stmmac_mdio_bus_data *mdio_bus_data; > int mode = priv->plat->phy_interface; > struct fwnode_handle *fwnode; > + struct phylink_pcs *pcs; > struct phylink *phylink; > > priv->phylink_config.dev = &priv->dev->dev; > @@ -1227,8 +1228,14 @@ static int stmmac_phy_setup(struct stmmac_priv *priv) > > /* If we have an xpcs, it defines which PHY interfaces are supported. */ > if (priv->hw->xpcs) > - xpcs_get_interfaces(priv->hw->xpcs, > - priv->phylink_config.supported_interfaces); > + pcs = xpcs_to_phylink_pcs(priv->hw->xpcs); > + else > + pcs = priv->hw->phylink_pcs; > + > + if (pcs) > + phy_interface_or(priv->phylink_config.supported_interfaces, > + priv->phylink_config.supported_interfaces, > + pcs->supported_interfaces); > > fwnode = priv->plat->port_node; > if (!fwnode) I think that we could even make xpcs_get_interfaces a static non-exported function now :) But this can be done in a subsequent patch. Thanks for that work ! Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com> Maxime
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index d45fd7a3acd5..0e45c4a48bb5 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -1206,6 +1206,7 @@ static int stmmac_phy_setup(struct stmmac_priv *priv) struct stmmac_mdio_bus_data *mdio_bus_data; int mode = priv->plat->phy_interface; struct fwnode_handle *fwnode; + struct phylink_pcs *pcs; struct phylink *phylink; priv->phylink_config.dev = &priv->dev->dev; @@ -1227,8 +1228,14 @@ static int stmmac_phy_setup(struct stmmac_priv *priv) /* If we have an xpcs, it defines which PHY interfaces are supported. */ if (priv->hw->xpcs) - xpcs_get_interfaces(priv->hw->xpcs, - priv->phylink_config.supported_interfaces); + pcs = xpcs_to_phylink_pcs(priv->hw->xpcs); + else + pcs = priv->hw->phylink_pcs; + + if (pcs) + phy_interface_or(priv->phylink_config.supported_interfaces, + priv->phylink_config.supported_interfaces, + pcs->supported_interfaces); fwnode = priv->plat->port_node; if (!fwnode)
Use the PCS' supported_interfaces member to build the MAC level supported_interfaces bitmap. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)