Messages in this thread |  | | From | Pierluigi Passaro <> | Date | Sun, 15 Jan 2023 23:23:51 +0100 | Subject | Re: [PATCH v2] net: fec: manage corner deferred probe condition |
| |
On Sun, Jan 15, 2023 at 10:56 PM Andrew Lunn <andrew@lunn.ch> wrote: > On Sun, Jan 15, 2023 at 10:38:04PM +0100, Pierluigi Passaro wrote: > > For dual fec interfaces, external phys can only be configured by fec0. > > When the function of_mdiobus_register return -EPROBE_DEFER, the driver > > is lately called to manage fec1, which wrongly register its mii_bus as > > fec0_mii_bus. > > When fec0 retry the probe, the previous assignement prevent the MDIO bus > > registration. > > Use a static boolean to trace the orginal MDIO bus deferred probe and > > prevent further registrations until the fec0 registration completed > > succesfully. > > The real problem here seems to be that fep->dev_id is not > deterministic. I think a better fix would be to make the mdio bus name > deterministic. Use pdev->id instead of fep->dev_id + 1. That is what > most mdiobus drivers use. > Actually, the sequence is deterministic, fec0 and then fec1, but sometimes the GPIO of fec0 is not yet available. The EPROBE_DEFER does not prevent the second instance from being probed. This is the origin of the problem. > > Andrew
|  |