From: Florian Fainelli <f.fainelli@gmail.com>
To: <netdev@vger.kernel.org>
Cc: <davem@davemloft.net>, <sebastian.hesselbarth@gmail.com>,
<sergei.shtylyov@cogentembedded.com>, <afleming@gmail.com>,
<kyle@moffetthome.net>, Florian Fainelli <f.fainelli@gmail.com>
Subject: [PATCH 9/9] net: sh_eth: do not issue a wild PHY reset through BMCR
Date: Thu, 5 Dec 2013 16:55:17 -0800 [thread overview]
Message-ID: <1386291317-1202-10-git-send-email-f.fainelli@gmail.com> (raw)
In-Reply-To: <1386291317-1202-1-git-send-email-f.fainelli@gmail.com>
The sh_eth driver issues an uncontrolled PHY reset through the MII
register BMCR but fails to wait for the reset to complete, and will also
implicitely wipe out all possible PHY fixups applied. Use phy_init_hw()
which remedies both problems.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
drivers/net/ethernet/renesas/sh_eth.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c
index d256ce1..6761dde 100644
--- a/drivers/net/ethernet/renesas/sh_eth.c
+++ b/drivers/net/ethernet/renesas/sh_eth.c
@@ -1704,7 +1704,10 @@ static int sh_eth_phy_start(struct net_device *ndev)
return ret;
/* reset phy - this also wakes it from PDOWN */
- phy_write(mdp->phydev, MII_BMCR, BMCR_RESET);
+ ret = phy_init_hw(mdp->phydev);
+ if (ret)
+ return ret;
+
phy_start(mdp->phydev);
return 0;
--
1.8.3.2
prev parent reply other threads:[~2013-12-06 1:04 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-06 0:55 [PATCH 0/9] net: phy: PHY reset consolidation Florian Fainelli
2013-12-06 0:55 ` [PATCH 1/9] net: phy: report link partner features through ethtool Florian Fainelli
2013-12-06 0:55 ` [PATCH 2/9] net: phy: use phy_init_hw instead of open-coding it Florian Fainelli
2013-12-06 0:55 ` [PATCH 3/9] net: greth: use phy_read_status() Florian Fainelli
2013-12-06 0:55 ` [PATCH 4/9] net: bfin_mac: do not reset PHY after phy_start() Florian Fainelli
2013-12-06 0:55 ` [PATCH 5/9] net: phy: consolidate PHY reset in phy_init_hw() Florian Fainelli
2013-12-06 0:55 ` [PATCH 6/9] net: mv643xx_eth: use phy_init_hw to reset PHY Florian Fainelli
2013-12-06 2:16 ` Sergei Shtylyov
2013-12-06 0:55 ` [PATCH 7/9] net: pxa168_eth: use phy_init_hw for PHY reset Florian Fainelli
2013-12-06 1:06 ` Florian Fainelli
2013-12-06 0:55 ` [PATCH 8/9] net: tc35815: " Florian Fainelli
2013-12-06 0:55 ` Florian Fainelli [this message]
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=1386291317-1202-10-git-send-email-f.fainelli@gmail.com \
--to=f.fainelli@gmail.com \
--cc=afleming@gmail.com \
--cc=davem@davemloft.net \
--cc=kyle@moffetthome.net \
--cc=netdev@vger.kernel.org \
--cc=sebastian.hesselbarth@gmail.com \
--cc=sergei.shtylyov@cogentembedded.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).