From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 73BC4C282C4 for ; Sat, 9 Feb 2019 13:46:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4027D218D2 for ; Sat, 9 Feb 2019 13:46:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gNMZsdo/" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726880AbfBINqo (ORCPT ); Sat, 9 Feb 2019 08:46:44 -0500 Received: from mail-wm1-f67.google.com ([209.85.128.67]:56132 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726724AbfBINqo (ORCPT ); Sat, 9 Feb 2019 08:46:44 -0500 Received: by mail-wm1-f67.google.com with SMTP id r17so8421511wmh.5 for ; Sat, 09 Feb 2019 05:46:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:message-id:date:user-agent:mime-version :content-language:content-transfer-encoding; bh=DDkoZ58q4iU1PepPRByD0NciyYFQYBqc+VSOMjsFnQY=; b=gNMZsdo/uLJqvD1oz/GvYXNn2zcUd4FiYCG9NztO1DCw3Vp91Go1fpSDzMD3s3vt0H RaeXnlJeK+x0AqMoDPlI1IspMmp2CXe0l7gxuytFqm5Vxp9b0apgutcyBtQZCMj6Q9I/ IXX7H3penWZ3Obqj6xPMO3Olo6TBFm6a5EkzVvX4dEju8BDSpAW+R5m/vcxOTDSHg479 ZAVXHvoEgdDcHsBULYrnSeTlrw02fGwQn+stckK9ziwNgx57fUUGavmxr9zXYUXvSlRK C8Ef1RVXywH9MRIUgHYPzSR1jyyTQIEg7RkoODvzsGlHmyRj06zNZZDuhtWKnl9vgQ1g kjvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:message-id:date:user-agent :mime-version:content-language:content-transfer-encoding; bh=DDkoZ58q4iU1PepPRByD0NciyYFQYBqc+VSOMjsFnQY=; b=KbPaHzeJsPQcf0Xs2Ql3SghAGzjhJgvb7n2wPZLnFZGUlySszcMT0EnW+fzvnbemSe 8qaVEh9tKZw5LMQDTHyYHB7gpObzcmkvdqYXV3HcWpULVE8mlFIFjeaKYAWy7L3DLcqY 3tFcjeQt4dfAhtLbMtaM/iMwbZZCzEELmXAkLC4Z5T9SpEW4l4l6HArrVLhmby5B1T21 nk9wALHXT5OSLqaWDe/LkCHFufMvSMpA3NvEL9XAltVDEOpwUyFwmfEEm7J5nXgXchjK z+48YEdxE3BvvfEvmh054es+hUWt5PdR2IO0SF2A8jvKCgas6oAuidziEDUWNnujxOOL H5VA== X-Gm-Message-State: AHQUAubnW3waCb4bv8sELXQTYt99zpkjHkUpkM2miXRDORnxyes2TYjr k9MWE34iUnvFnCwJ46Qe+UBJFgYP X-Google-Smtp-Source: AHgI3IbtEZZLjUuPe5ifRv7shK0L/ir0GhdwndCs4gfwnXDYEsx52QtYJGmDFmZWgJOVcCBkXrBsxw== X-Received: by 2002:adf:fc51:: with SMTP id e17mr20394211wrs.268.1549720002570; Sat, 09 Feb 2019 05:46:42 -0800 (PST) Received: from ?IPv6:2003:ea:8bf1:e200:aca4:3d:8205:4c97? (p200300EA8BF1E200ACA4003D82054C97.dip0.t-ipconnect.de. [2003:ea:8bf1:e200:aca4:3d:8205:4c97]) by smtp.googlemail.com with ESMTPSA id x22sm3625308wmj.40.2019.02.09.05.46.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 09 Feb 2019 05:46:41 -0800 (PST) From: Heiner Kallweit To: Andrew Lunn , Florian Fainelli , David Miller Cc: "netdev@vger.kernel.org" Subject: [PATCH net-next] net: phy: probe the PHY before determining the supported features Message-ID: <7163437e-3c36-0a6b-d328-1f54141c7a13@gmail.com> Date: Sat, 9 Feb 2019 14:46:30 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Andrew Lunn We will soon support asking the PHY at runtime to determine what features it supports, rather than forcing it to be compile time. But we should probe the PHY first. So probe the phy driver earlier. Signed-off-by: Andrew Lunn Signed-off-by: Heiner Kallweit --- drivers/net/phy/phy_device.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index 31f9e7c49..92b7a71df 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -2220,6 +2220,18 @@ static int phy_probe(struct device *dev) mutex_lock(&phydev->lock); + if (phydev->drv->probe) { + /* Deassert the reset signal */ + phy_device_reset(phydev, 0); + + err = phydev->drv->probe(phydev); + if (err) { + /* Assert the reset signal */ + phy_device_reset(phydev, 1); + goto out; + } + } + /* Start out supporting everything. Eventually, * a controller will attach, and may modify one * or both of these values @@ -2267,17 +2279,7 @@ static int phy_probe(struct device *dev) /* Set the state to READY by default */ phydev->state = PHY_READY; - if (phydev->drv->probe) { - /* Deassert the reset signal */ - phy_device_reset(phydev, 0); - - err = phydev->drv->probe(phydev); - if (err) { - /* Assert the reset signal */ - phy_device_reset(phydev, 1); - } - } - +out: mutex_unlock(&phydev->lock); return err; -- 2.20.1