Re: [PATCH net-next v2] net: phylink: add phylink_pcs_loopback() method for PCS loopback support

From: Andrew Lunn

Date: Mon Jul 27 2026 - 15:50:50 EST


> static int stmmac_test_phy_loopback(struct stmmac_priv *priv)
> {
> struct stmmac_packet_attrs attr = { };
> + struct phylink_pcs *pcs;
> int ret;
>
> - if (!priv->dev->phydev)
> - return -EOPNOTSUPP;
> + if (priv->dev->phydev) {
> + ret = phy_loopback(priv->dev->phydev, true, 0);
> + if (ret)
> + return ret;
>
> - ret = phy_loopback(priv->dev->phydev, true, 0);
> - if (ret)
> + attr.dst = priv->dev->dev_addr;
> + ret = __stmmac_test_loopback(priv, &attr);
> +
> + phy_loopback(priv->dev->phydev, false, 0);
> return ret;
> + }
>
> - attr.dst = priv->dev->dev_addr;
> - ret = __stmmac_test_loopback(priv, &attr);
> + /* Use PCS loopback for interfaces without an external PHY. */

It should not be an either/or. You can have a PCS and an external PHY.
You might actually want to test both.

So i think you want stmmac_test_phy_loopback() and
stmmac_test_pcs_loopback() with the shared code in a helper.

Andrew

---
pw-bot: cr