[PATCH net-next 5/5] net: stmmac: use PCS supported_interfaces
Maxime Chevallier
maxime.chevallier at bootlin.com
Tue Dec 17 05:19:12 PST 2024
Hi Russell,
On Fri, 13 Dec 2024 19:35:12 +0000
"Russell King (Oracle)" <rmk+kernel at 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 at 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 at bootlin.com>
Maxime
More information about the linux-arm-kernel
mailing list