From patchwork Sat Jan 9 18:44:05 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sjoerd Simons X-Patchwork-Id: 59428 Delivered-To: patch@linaro.org Received: by 10.112.130.2 with SMTP id oa2csp1240034lbb; Sat, 9 Jan 2016 10:44:18 -0800 (PST) X-Received: by 10.98.93.136 with SMTP id n8mr11369875pfj.67.1452365058132; Sat, 09 Jan 2016 10:44:18 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id fk1si25809236pad.35.2016.01.09.10.44.17; Sat, 09 Jan 2016 10:44:18 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755982AbcAISoP (ORCPT + 29 others); Sat, 9 Jan 2016 13:44:15 -0500 Received: from bhuna.collabora.co.uk ([46.235.227.227]:33352 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755212AbcAISoO (ORCPT ); Sat, 9 Jan 2016 13:44:14 -0500 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: sjoerd) with ESMTPSA id B0F54260213 Received: by dusk.luon.net (Postfix, from userid 1000) id 919F53AAF4; Sat, 9 Jan 2016 19:44:05 +0100 (CET) From: Sjoerd Simons To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Florian Fainelli Subject: [PATCH] net: phy: turn carrier off on phy attach Date: Sat, 9 Jan 2016 19:44:05 +0100 Message-Id: <1452365045-5364-1-git-send-email-sjoerd.simons@collabora.co.uk> X-Mailer: git-send-email 2.7.0.rc3 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- drivers/net/phy/phy_device.c | 5 +++++ 1 file changed, 5 insertions(+) -- 2.7.0.rc3 diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index 0bfbaba..a30ce1a 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; + /* Signal to the core network layer the phy supports + * carrier detection + */ + netif_carrier_off(phydev->attached_dev); + /* Do initial configuration here, now that * we have certain key parameters * (dev_flags and interface)