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.1 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 8CCF7C282CB for ; Tue, 5 Feb 2019 19:41:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 57D6B217D6 for ; Tue, 5 Feb 2019 19:41:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lCx+sF40" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729577AbfBETlp (ORCPT ); Tue, 5 Feb 2019 14:41:45 -0500 Received: from mail-wm1-f65.google.com ([209.85.128.65]:39036 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728595AbfBETlp (ORCPT ); Tue, 5 Feb 2019 14:41:45 -0500 Received: by mail-wm1-f65.google.com with SMTP id y8so172672wmi.4 for ; Tue, 05 Feb 2019 11:41:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:subject:to:cc:message-id:date:user-agent:mime-version :content-language:content-transfer-encoding; bh=NdcvxMiAY50wQmYktVJUh2JAWe9FQEbdWZtqXbu6buQ=; b=lCx+sF40POHaeZJ+kPkF/0pCz2CHMJ0A1/C1yEJzDqyCBY/9+UVfKqX176oyIrgo2N Er1NTaJyedcVcqVlRhLnn5wfO0O5zTtXny940fBAquReo86sSmgFH/QazrtTtkq8//4h uiMr4UAyjaArRuVVBmEyultnT8cCI7yninp/NgddmuNsrDBGHcKPWXdEi9q7E59/9b0d KnfHjlbZxJonjGZlx3SYfg4VYCyhVWYl7m4rYCdOzIXcUy4AnMsnsKb6vMBfpG8VFHcU Xse/+FODKlp2YAFF3wXbZhA57fB2k5cM79JAORNxHFP7O1wgztq9Rjx4W5gmxC68HhHS UC3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:subject:to:cc:message-id:date:user-agent :mime-version:content-language:content-transfer-encoding; bh=NdcvxMiAY50wQmYktVJUh2JAWe9FQEbdWZtqXbu6buQ=; b=C1wTIwDuN/JenWplT5lpfCl60bC+loe/Q5maaDONxZcc5z3DEdjWPCnTzQXyMjUyPR 9KeaIppTWR3JWz0bUrbnwaD+yOrlXCpecJRlQLXT+W0mqZt8VmEdp1hPL1/k5Wnf/72a UXePQ/0gbNNGiYGG7CnKyCcs10PfV7XlieCrMg7k64XzQb3sc9vvAmho29tNdDbRJGbW F0EAW9PZZwCc4Ka+t5g5R53aBPeJbsEyDqph2I1RsPpp2aofXaccASNVM8e6XjrSTs+f AgIm65uOcSARU2oqPLJpcoTGw0t4WjOOhELwj/Q3zsMOr+y2JqJ5A4zzh/Z09gvJcAhL vABA== X-Gm-Message-State: AHQUAuZP1MsXgm3d4Fq3GgmCfbA85ejAHheyWC7zhqXVQjjZlOkM3RMi izKyaxEa9PB5OoSiCQUGEh6w4IPm X-Google-Smtp-Source: AHgI3IbtAR5sGsLWPRDstody4Redyxen25erwtooAePDO3RXEopaCxkaB45X/qb/oRdCQGBF0q3XTA== X-Received: by 2002:a1c:23cc:: with SMTP id j195mr243505wmj.124.1549395703333; Tue, 05 Feb 2019 11:41:43 -0800 (PST) Received: from ?IPv6:2003:ea:8bf1:e200:759b:8dd5:b995:6b39? (p200300EA8BF1E200759B8DD5B9956B39.dip0.t-ipconnect.de. [2003:ea:8bf1:e200:759b:8dd5:b995:6b39]) by smtp.googlemail.com with ESMTPSA id a4sm5526351wmm.22.2019.02.05.11.41.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Feb 2019 11:41:42 -0800 (PST) From: Heiner Kallweit Subject: [PATCH v2 net-next] net: phy: improve genphy_c45_read_link To: Andrew Lunn , Florian Fainelli , David Miller , Russell King Cc: "netdev@vger.kernel.org" Message-ID: <303235da-0957-32bb-29ff-014c85b93f72@gmail.com> Date: Tue, 5 Feb 2019 20:41:37 +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 Let's make genphy_c45_read_link behave the same as genphy_update_link and set phydev->link in the function directly. This allows to simplify the callers. In addition don't check further devices once we detect that at least one device reports link as down. v2: - remove an unused variable Signed-off-by: Heiner Kallweit --- drivers/net/phy/marvell10g.c | 2 -- drivers/net/phy/phy-c45.c | 15 ++++++--------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c index 38cfc923a..be2cfdfd8 100644 --- a/drivers/net/phy/marvell10g.c +++ b/drivers/net/phy/marvell10g.c @@ -475,8 +475,6 @@ static int mv3310_read_status(struct phy_device *phydev) if (val < 0) return val; - phydev->link = val > 0 ? 1 : 0; - val = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_STAT1); if (val < 0) return val; diff --git a/drivers/net/phy/phy-c45.c b/drivers/net/phy/phy-c45.c index 03af927fa..b874c4858 100644 --- a/drivers/net/phy/phy-c45.c +++ b/drivers/net/phy/phy-c45.c @@ -134,7 +134,7 @@ EXPORT_SYMBOL_GPL(genphy_c45_aneg_done); * @mmd_mask: MMDs to read status from * * Read the link status from the specified MMDs, and if they all indicate - * that the link is up, return positive. If an error is encountered, + * that the link is up, set phydev->link to 1. If an error is encountered, * a negative errno will be returned, otherwise zero. */ int genphy_c45_read_link(struct phy_device *phydev, u32 mmd_mask) @@ -142,7 +142,7 @@ int genphy_c45_read_link(struct phy_device *phydev, u32 mmd_mask) int val, devad; bool link = true; - while (mmd_mask) { + while (mmd_mask && link) { devad = __ffs(mmd_mask); mmd_mask &= ~BIT(devad); @@ -158,7 +158,9 @@ int genphy_c45_read_link(struct phy_device *phydev, u32 mmd_mask) link = false; } - return link; + phydev->link = link; + + return 0; } EXPORT_SYMBOL_GPL(genphy_c45_read_link); @@ -278,7 +280,6 @@ EXPORT_SYMBOL_GPL(gen10g_config_aneg); int gen10g_read_status(struct phy_device *phydev) { u32 mmd_mask = phydev->c45_ids.devices_in_package; - int ret; /* For now just lie and say it's 10G all the time */ phydev->speed = SPEED_10000; @@ -287,11 +288,7 @@ int gen10g_read_status(struct phy_device *phydev) /* Avoid reading the vendor MMDs */ mmd_mask &= ~(BIT(MDIO_MMD_VEND1) | BIT(MDIO_MMD_VEND2)); - ret = genphy_c45_read_link(phydev, mmd_mask); - - phydev->link = ret > 0 ? 1 : 0; - - return 0; + return genphy_c45_read_link(phydev, mmd_mask); } EXPORT_SYMBOL_GPL(gen10g_read_status); -- 2.20.1