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 0C5B9C282CB for ; Tue, 5 Feb 2019 19:17:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D2D4C2083B for ; Tue, 5 Feb 2019 19:17:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="at8IvEI3" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729239AbfBETRt (ORCPT ); Tue, 5 Feb 2019 14:17:49 -0500 Received: from mail-wr1-f66.google.com ([209.85.221.66]:33056 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726962AbfBETRs (ORCPT ); Tue, 5 Feb 2019 14:17:48 -0500 Received: by mail-wr1-f66.google.com with SMTP id a16so4968723wrv.0 for ; Tue, 05 Feb 2019 11:17:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:cc:from:subject:message-id:date:user-agent:mime-version :content-language:content-transfer-encoding; bh=XIfir/Gl3yFfYcGswV6L6Ykz5ud4wBaSj7wrzjZT6hY=; b=at8IvEI3tBcF6vnaTIeSPsSkEGZWOUEonmSgcc6CfEEsquJ0GWuwB/UzRB74gdKOjg ZhCGUNDd9Mqj9YKm0tkEzEj5rrNMbdptxbOWAtb+r1dbjFgdK2OWtbIIGK7ofV/ulH2u tIa39KG62hCOxjaIBEvnY0xt6BdUTPNZabB9LyF1Ge0mml/IBRVC7J2nd9R+6Ibv5OV8 IT6+icrECCOaFD9z+oOTAZLP3mWLIoPTa8B0IJA5ndO03BVJRbanKljTgDshDkDePJmT zBzNgjHIXiUnblP5mevqF0Z9rosTquWHbXDXZQViU0QB/MC8Pg31dmCaofkTAsyU3yB2 vaFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:cc:from:subject:message-id:date:user-agent :mime-version:content-language:content-transfer-encoding; bh=XIfir/Gl3yFfYcGswV6L6Ykz5ud4wBaSj7wrzjZT6hY=; b=iHDBqrEmtOZiZe6Az+DTOd49TNzyGrvqgd3BXmOLdI13b+KQ6vG0DiPSqyIWhEp61v /tj2W4FciOMAE2uH4JH0ccC4+ymR8+4BzbxokWmasydfpyahkg0jXuA5l/Tjt2f3oI2A XQcx9Q3VWvo/Y6IcUffZvZ0MElWrRhwO25Btu01qKVKXS5cVj520qn/QWYYyclKEyRfk DocVlE/sAreOknh/iixgSk0LfPCbUGXjJKWzwsFst40SIZEtbmxxoLGBMCjKeJI2bUQb Q9uzPKP2W9+i152GSYWW0xa0U+PHMGkIhZO7kAGvcg+NayKBjpidD/2A+njPnG7qAQ8C xCpQ== X-Gm-Message-State: AHQUAuZmdkKt9lsV9EVHBoVWyBtY0e7kS+YQ1VCzUXINyJ73ixIt739w uHpa4jzSvhP7gpXUV8GpxirS5q1D X-Google-Smtp-Source: AHgI3Ia4vrQ5OJnmzJP8igXoOF5RO6eODnNkyULTEglQmT9xu0intZHY7F1v7TY3oKn9GcHCVEXq0A== X-Received: by 2002:a5d:55c1:: with SMTP id i1mr5208257wrw.149.1549394266658; Tue, 05 Feb 2019 11:17:46 -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 l20sm36927755wrb.93.2019.02.05.11.17.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Feb 2019 11:17:46 -0800 (PST) To: Andrew Lunn , Florian Fainelli , David Miller , Russell King Cc: "netdev@vger.kernel.org" From: Heiner Kallweit Subject: [PATCH net-next] net: phy: improve genphy_c45_read_link Message-ID: <8c80daa0-d0fe-4252-09d8-70ccbe997c2f@gmail.com> Date: Tue, 5 Feb 2019 20:17:36 +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. Signed-off-by: Heiner Kallweit --- drivers/net/phy/marvell10g.c | 2 -- drivers/net/phy/phy-c45.c | 14 ++++++-------- 2 files changed, 6 insertions(+), 10 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..8a82c3c7a 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); @@ -287,11 +289,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