From: Florian Fainelli <f.fainelli@gmail.com>
To: Fugang Duan <b38611@freescale.com>, davem@davemloft.net
Cc: netdev@vger.kernel.org, s.hauer@pengutronix.de,
bhutchings@solarflare.com, stephen@networkplumber.org
Subject: Re: [PATCH net-next 1/1] net: phy: unbind phy device from generic and specifical driver
Date: Mon, 26 Jan 2015 09:14:25 -0800 [thread overview]
Message-ID: <54C675F1.9080803@gmail.com> (raw)
In-Reply-To: <1422260045-22527-1-git-send-email-b38611@freescale.com>
On 26/01/15 00:14, Fugang Duan wrote:
> The current .phy_detach() function only unbind generic phy driver, which causes
> specifical driver suspend/resume function still work like Atheros AT803X PHYs.
>
> For example:
> ifconfig eth0 down
> echo mem > /sys/power/status
>
> After eth0 interface down, driver call phy_detach to unbind phy driver, and then
> do suspend/resume operation, at803x_suspend()/at803x_resume() functions still get
> called that call mdio bus read/write function. When eth0 interface down, MAC driver
> may close all clocks and mdio bus cannot work. So the issue happens.
I was just hitting this problem on Friday evening and was about to
submit a similar change. Thanks!
>
> The patch can unbind generic and specifical driver.
>
> Signed-off-by: Fugang Duan <B38611@freescale.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>
> ---
> drivers/net/phy/phy_device.c | 15 ++-------------
> 1 files changed, 2 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
> index 3fc91e8..8adbc5d 100644
> --- a/drivers/net/phy/phy_device.c
> +++ b/drivers/net/phy/phy_device.c
> @@ -672,8 +672,6 @@ EXPORT_SYMBOL(phy_attach);
> */
> void phy_detach(struct phy_device *phydev)
> {
> - int i;
> -
> if (phydev->bus->dev.driver)
> module_put(phydev->bus->dev.driver->owner);
>
> @@ -681,17 +679,8 @@ void phy_detach(struct phy_device *phydev)
> phydev->attached_dev = NULL;
> phy_suspend(phydev);
>
> - /* If the device had no specific driver before (i.e. - it
> - * was using the generic driver), we unbind the device
> - * from the generic driver so that there's a chance a
> - * real driver could be loaded
> - */
> - for (i = 0; i < ARRAY_SIZE(genphy_driver); i++) {
> - if (phydev->dev.driver == &genphy_driver[i].driver) {
> - device_release_driver(&phydev->dev);
> - break;
> - }
> - }
> + if (phydev->dev.driver)
> + device_release_driver(&phydev->dev);
> }
> EXPORT_SYMBOL(phy_detach);
>
>
--
Florian
next prev parent reply other threads:[~2015-01-26 17:14 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-26 8:14 [PATCH net-next 1/1] net: phy: unbind phy device from generic and specifical driver Fugang Duan
2015-01-26 17:14 ` Florian Fainelli [this message]
2015-01-26 17:47 ` Florian Fainelli
2015-01-27 2:27 ` fugang.duan
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=54C675F1.9080803@gmail.com \
--to=f.fainelli@gmail.com \
--cc=b38611@freescale.com \
--cc=bhutchings@solarflare.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=stephen@networkplumber.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.