Thread (27 messages) flat view 27 messages, 4 authors, 2016-10-21

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help