From: Timur Tabi <timur@codeaurora.org>
To: netdev@vger.kernel.org
Subject: Need help with mdiobus_register and phy
Date: Thu, 13 Oct 2016 18:15:39 -0500 [thread overview]
Message-ID: <5800159B.3080708@codeaurora.org> (raw)
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.
I don't know what my driver is doing wrong. I'm concerned that
mdiobus_register() is causing MDIO transactions to occur before the rest
of the EMAC has a chance to initialize. I've examined many other
drivers, and I think I'm initializing things in the proper order.
The call to mdiobus_register() occurs before I know what phydev is.
Since I need the phydev in order to talk to the phy driver, I don't see
how I can "wake up" the external phy before calling mdiobus_register().
--
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm
Technologies, Inc. Qualcomm Technologies, Inc. is a member of the
Code Aurora Forum, a Linux Foundation Collaborative Project.
next reply other threads:[~2016-10-13 23:15 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-13 23:15 Timur Tabi [this message]
2016-10-14 4:06 ` Need help with mdiobus_register and phy Andrew Lunn
2016-10-14 11:38 ` Timur Tabi
2016-10-14 12:06 ` Andrew Lunn
2016-10-14 12:39 ` Timur Tabi
2016-10-14 12:49 ` Andrew Lunn
2016-10-14 12:49 ` Timur Tabi
2016-10-14 12:57 ` Andrew Lunn
2016-10-14 13:03 ` Timur Tabi
2016-10-14 13:18 ` Andrew Lunn
2016-10-14 13:28 ` Timur Tabi
2016-10-14 16:57 ` Timur Tabi
2016-10-14 17:25 ` Andrew Lunn
2016-10-14 18:30 ` Timur Tabi
2016-10-15 10:19 ` Florian Fainelli
2016-10-15 14:39 ` Timur Tabi
2016-10-15 18:02 ` Andrew Lunn
2016-10-15 18:28 ` Timur Tabi
2016-10-17 9:05 ` Zefir Kurtisi
2016-10-17 20:53 ` Timur Tabi
2016-10-18 10:31 ` Zefir Kurtisi
2016-10-18 12:40 ` Timur Tabi
2016-10-19 8:55 ` Zefir Kurtisi
2016-10-19 12:16 ` Timur Tabi
2016-10-20 12:55 ` Zefir Kurtisi
2016-10-21 7:44 ` Zefir Kurtisi
2016-10-21 11:19 ` Timur Tabi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5800159B.3080708@codeaurora.org \
--to=timur@codeaurora.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.