All of lore.kernel.org
 help / color / mirror / Atom feed
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.

             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.