From: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
To: netdev@vger.kernel.org
Cc: Andrew Lunn <andrew@lunn.ch>,
linux-kernel@vger.kernel.org,
Florian Fainelli <f.fainelli@gmail.com>
Subject: [PATCH] net: phy: turn carrier off on phy attach
Date: Thu, 14 Jan 2016 21:57:18 +0100 [thread overview]
Message-ID: <1452805038-27178-1-git-send-email-sjoerd.simons@collabora.co.uk> (raw)
The operstate of a networking device initially IF_OPER_UNKNOWN aka
"unknown", updated on carrier state changes (with carrier state being on
by default). This means it will stay unknown unless the carrier state
goes to off at some point, which is not the case if the phy is already
up/connected at startup.
Explicitly turn off the carrier on phy attach, leaving the phy state
machine to turn the carrier on when it has done the initial negotiation.
Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
---
drivers/net/phy/phy_device.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 0bfbaba..0b407dd 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -668,6 +668,11 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
phydev->state = PHY_READY;
+ /* Initial carrier state is off as the phy is about to be
+ * (re)initialized.
+ */
+ netif_carrier_off(phydev->attached_dev);
+
/* Do initial configuration here, now that
* we have certain key parameters
* (dev_flags and interface)
--
2.7.0.rc3
next reply other threads:[~2016-01-14 20:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-14 20:57 Sjoerd Simons [this message]
2016-01-15 19:50 ` [PATCH] net: phy: turn carrier off on phy attach David Miller
-- strict thread matches above, loose matches on Subject: below --
2016-01-09 18:44 Sjoerd Simons
2016-01-11 22:17 ` David Miller
2016-01-12 0:57 ` Andrew Lunn
2016-01-13 1:31 ` Florian Fainelli
2016-01-14 20:22 ` Sjoerd Simons
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=1452805038-27178-1-git-send-email-sjoerd.simons@collabora.co.uk \
--to=sjoerd.simons@collabora.co.uk \
--cc=andrew@lunn.ch \
--cc=f.fainelli@gmail.com \
--cc=linux-kernel@vger.kernel.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 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).