Re: [PATCH v2] net: fec: manage corner deferred probe condition

From: Andrew Lunn
Date: Mon Jan 16 2023 - 10:35:27 EST


> This is the setup of the corner case:
> - FEC0 is the owner of MDIO bus, but its own PHY rely on a "delayed" GPIO
> - FEC1 rely on FEC0 for MDIO communications
> The sequence is something like this
> - FEC0 probe start, but being the reset GPIO "delayed" it return EPROBE_DEFERRED
> - FEC1 is successfully probed: being the MDIO bus still not owned, the driver assume
>   that the ownership must be assigned to the 1st one successfully probed, but no
>   MDIO node is actually present and no communication takes place.

So semantics of a phandle is that you expect what it points to, to
exists. So if phy-handle points to a PHY, when you follow that pointer
and find it missing, you should defer the probe. So this step should
not succeed.

> - FEC0 is successfully probed, but MDIO bus is now assigned to FEC1
> and cannot  and no communication takes place

Andrew