On Thu, Oct 13, 2016 at 06:15:39PM -0500, Timur Tabi wrote: > I need help with a program I've discovered with my driver > (ethernet/qualcomm/emac/) that occurs in the following process: > > 1. Load the driver > 1a. Driver calls mdiobus_register (see emac_phy_config), which calls > mdiobus_scan(), which calls get_phy_device() > 1b. get_phy_device() performs MDIO bus operations, which means the > bus and the external phy need to be active. > 2. Bring up the interface > 3. Bring down the interface. This calls phy_disconnect() which > calls phy_detach() which calls phy_suspend(). This puts the > external phy to sleep. > 4. Unload the driver > 5. Re-load the driver. > 5a. Driver calls mdiobus_register again, but this time the call to > get_phy_device() fails because the external phy is asleep and does > not respond to MDIO transactions.
Hi Timur Normally, a sleeping PHY does respond to MDIO. Otherwise, how do you wake it? So i assume this phy has some other means to wake it. What is this means? Andrew