From patchwork Fri Feb 22 22:52:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Kallweit X-Patchwork-Id: 1047165 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="T8AxhaME"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 445mnz72HRz9sBL for ; Sat, 23 Feb 2019 09:52:55 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726973AbfBVWwz (ORCPT ); Fri, 22 Feb 2019 17:52:55 -0500 Received: from mail-wm1-f67.google.com ([209.85.128.67]:39803 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726278AbfBVWwx (ORCPT ); Fri, 22 Feb 2019 17:52:53 -0500 Received: by mail-wm1-f67.google.com with SMTP id z84so3322166wmg.4 for ; Fri, 22 Feb 2019 14:52:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=5hPKcxHvcD7zLtc7TA+5/mpeg4Y2lInaJekhBDSm3zA=; b=T8AxhaMECNp5QSO8R5Vt1A49HdsBY4dI5sUOe+PhjskOCXlKQ3La8lbf7H4DQa1Ggk MOpXjQO00MJdQ9SeRdQPUdKPKPgXBB0uN+KftUJVT/4/Qxvlww7TFFf1eui/OohoxVSp zJ6zLFGFaC9W3JIcWQSEHWPuQ0ac7ybL+T2HEigj6gZLt0NDekjWy0GrHPLL/rU1Hqlf +iWz53ODWbEKC+jzvHuVlEtSUw3sF1Pcu6bL10+KbUP+slxDCVlnFbvmFmTToVZhLgGp CFtx++AEkzjmHH2/CsnBnUDY+8UhJ6EiXXGXxwzTG4eeqbRrmiiuk0T5Iuwh17msGCRD 7aMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=5hPKcxHvcD7zLtc7TA+5/mpeg4Y2lInaJekhBDSm3zA=; b=Ik4tugCR9LUqguERcUHE3FRFUQCd7FkxilxuyHbl6PWco/1UjxSjEO4QYQDKYmwYkN KEMj9gbkrcpGI4LCse8nApUsxctqJIkBz7+TEci/XbD7WT+SRBjTwIYbIYXahEmWbWzP OeYOoD3Ody2FHlNwAO6kbx10oFyPj7HBE9Gc8oLiVFlMU2OG6urKBDkvUtCrnQCze4k2 i/lQDIpgddGzaSMbIdazt1QzvFx/aW6tWw/TBFTGeV1JYDHdJVeaZO/yb+3tyjJHG3jB MVhu5GNo7gCmGc/WkvqYDQEOM0/OtqoBDljWzJp6bIOX8XGDmSChiL9ALC1Dp3B07MYM ZopQ== X-Gm-Message-State: AHQUAuZ+ClKMS1LO1iiUDKUeCzGdKa59ABt0xxwS56SQEm40JEtctgyB EArblKoS+J8KwaJoNT493vow12oT X-Google-Smtp-Source: AHgI3IYoryWpW5e4IMv4A7iXmGORR8ScVs8r4ZtoPxS2J5r/SoCT0o7cuC59U6ZR+3BzPcOjC9XLLA== X-Received: by 2002:a05:600c:2:: with SMTP id g2mr3854190wmc.109.1550875971924; Fri, 22 Feb 2019 14:52:51 -0800 (PST) Received: from ?IPv6:2003:ea:8bf1:e200:881a:e62a:a902:5b57? (p200300EA8BF1E200881AE62AA9025B57.dip0.t-ipconnect.de. [2003:ea:8bf1:e200:881a:e62a:a902:5b57]) by smtp.googlemail.com with ESMTPSA id v196sm3617529wmf.15.2019.02.22.14.52.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 14:52:51 -0800 (PST) Subject: [PATCH net-next 5/5] net: phy: aquantia: use genphy_c45_read_status From: Heiner Kallweit To: Andrew Lunn , Florian Fainelli , David Miller Cc: "netdev@vger.kernel.org" References: <4ae20155-367d-4b11-63f9-28580b7cf1cb@gmail.com> Message-ID: Date: Fri, 22 Feb 2019 23:52:32 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <4ae20155-367d-4b11-63f9-28580b7cf1cb@gmail.com> Content-Language: en-US Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Use new function genphy_c45_read_status(). 1000BaseT link partner advertisement needs to be read from vendor registers. Signed-off-by: Heiner Kallweit --- drivers/net/phy/aquantia.c | 46 +++++++++++++++----------------------- 1 file changed, 18 insertions(+), 28 deletions(-) diff --git a/drivers/net/phy/aquantia.c b/drivers/net/phy/aquantia.c index a1846daa3..0f0eb5682 100644 --- a/drivers/net/phy/aquantia.c +++ b/drivers/net/phy/aquantia.c @@ -39,6 +39,10 @@ #define MDIO_AN_TX_VEND_INT_MASK2 0xd401 #define MDIO_AN_TX_VEND_INT_MASK2_LINK BIT(0) +#define MDIO_AN_RX_LP_STAT1 0xe820 +#define MDIO_AN_RX_LP_STAT1_1000BASET_FULL BIT(15) +#define MDIO_AN_RX_LP_STAT1_1000BASET_HALF BIT(14) + /* Vendor specific 1, MDIO_MMD_VEND1 */ #define VEND1_GLOBAL_INT_STD_STATUS 0xfc00 #define VEND1_GLOBAL_INT_VEND_STATUS 0xfc01 @@ -154,36 +158,22 @@ static int aqr_ack_interrupt(struct phy_device *phydev) static int aqr_read_status(struct phy_device *phydev) { - int reg; - - reg = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_STAT1); - reg = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_STAT1); - if (reg & MDIO_STAT1_LSTATUS) - phydev->link = 1; - else - phydev->link = 0; - - reg = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_AN_TX_VEND_STATUS1); - mdelay(10); - reg = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_AN_TX_VEND_STATUS1); - - switch (reg & MDIO_AN_TX_VEND_STATUS1_RATE_MASK) { - case MDIO_AN_TX_VEND_STATUS1_2500BASET: - phydev->speed = SPEED_2500; - break; - case MDIO_AN_TX_VEND_STATUS1_1000BASET: - phydev->speed = SPEED_1000; - break; - case MDIO_AN_TX_VEND_STATUS1_100BASETX: - phydev->speed = SPEED_100; - break; - default: - phydev->speed = SPEED_10000; - break; + int val; + + if (phydev->autoneg == AUTONEG_ENABLE) { + val = phy_read_mmd(phydev, MDIO_MMD_AN, MDIO_AN_RX_LP_STAT1); + if (val < 0) + return val; + + linkmode_mod_bit(ETHTOOL_LINK_MODE_1000baseT_Full_BIT, + phydev->lp_advertising, + val & MDIO_AN_RX_LP_STAT1_1000BASET_FULL); + linkmode_mod_bit(ETHTOOL_LINK_MODE_1000baseT_Half_BIT, + phydev->lp_advertising, + val & MDIO_AN_RX_LP_STAT1_1000BASET_HALF); } - phydev->duplex = DUPLEX_FULL; - return 0; + return genphy_c45_read_status(phydev); } static int aqcs109_config_init(struct phy_device *phydev)