Re: Need help with mdiobus_register and phy
From: Andrew Lunn <andrew@lunn.ch>
Date: 2016-10-14 04:06:44
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