> Note that this driver differs a bit from RAVB for which [2] targets. The > RAVB driver creates the MDIO bus at probe time, this drivers creates and > destroys the MDIO bus in sync with the interface state using ndo_open > and ndo_stop. That is not a good idea. It is better to create the MDIO bus at probe time. There are a few reasons for this. 1) It takes while for the machinary to load the PHY driver, when it is a module. If it does not get time to do that, you end up with the generic PHY driver, even though there is a specific PHY driver, which becomes usable a little later in time. But your network is dead because the generic PHY drive is not sufficient. 2) It is possible that creating the MDIO bus fails with EPROBE_DEFER. If this happens at ndo_open(), there is nothing you can do about it, other than return the error to user space. If it happens during probe, the driver core will handle it, and try to probe the driver again sometime later. Andrew