Re: [PATCH 1/3] net: macb: fix for fixed-link mode

From: Nicolas.Ferre
Date: Wed Nov 27 2019 - 13:02:33 EST


On 26/11/2019 at 10:09, Milind Parab wrote:
> This patch fix the issue with fixed link mode in macb.

I would need more context here. What needs to be fixed?

I think we had several attempts, at the phylib days, to have this part
of the driver behave correctly, so providing us more insight will help
understand what is going wrong now.
For instance, is it related to the patch that converts the driver to the
phylink interface done by this patch in net-next "net: macb: convert to
phylink"?


> Signed-off-by: Milind Parab <mparab@xxxxxxxxxxx>
> ---
> drivers/net/ethernet/cadence/macb_main.c | 12 ++++--------
> 1 file changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
> index d5ae2e1e0b0e..5e6d27d33d43 100644
> --- a/drivers/net/ethernet/cadence/macb_main.c
> +++ b/drivers/net/ethernet/cadence/macb_main.c
> @@ -617,15 +617,11 @@ static int macb_phylink_connect(struct macb *bp)
> struct phy_device *phydev;
> int ret;
>
> - if (bp->pdev->dev.of_node &&
> - of_parse_phandle(bp->pdev->dev.of_node, "phy-handle", 0)) {

You mean we don't need to parse this phandle anymore because it's better
handled by phylink_of_phy_connect() below that takes care of the
fixed-link case?
If yes, then telling it in commit message is worth it...

> + if (bp->pdev->dev.of_node)
> ret = phylink_of_phy_connect(bp->phylink, bp->pdev->dev.of_node,
> 0);
> - if (ret) {
> - netdev_err(dev, "Could not attach PHY (%d)\n", ret);
> - return ret;
> - }
> - } else {
> +
> + if ((!bp->pdev->dev.of_node || ret == -ENODEV) && bp->mii_bus) {
> phydev = phy_find_first(bp->mii_bus);
> if (!phydev) {
> netdev_err(dev, "no PHY found\n");
> @@ -635,7 +631,7 @@ static int macb_phylink_connect(struct macb *bp)
> /* attach the mac to the phy */
> ret = phylink_connect_phy(bp->phylink, phydev);
> if (ret) {
> - netdev_err(dev, "Could not attach to PHY (%d)\n", ret);
> + netdev_err(dev, "Could not attach to PHY\n");

Why modifying this?

> return ret;
> }
> }
> --
> 2.17.1
>

Best regards,
Nicolas

--
Nicolas Ferre