From patchwork Wed Jun 27 00:06:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Burton X-Patchwork-Id: 935177 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=none (p=none dis=none) header.from=mips.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=wavesemi.onmicrosoft.com header.i=@wavesemi.onmicrosoft.com header.b="LUWMlE6t"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41FjrL1zZ1z9s0n for ; Wed, 27 Jun 2018 10:06:42 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964772AbeF0AGj (ORCPT ); Tue, 26 Jun 2018 20:06:39 -0400 Received: from mail-eopbgr700099.outbound.protection.outlook.com ([40.107.70.99]:11034 "EHLO NAM04-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752964AbeF0AGg (ORCPT ); Tue, 26 Jun 2018 20:06:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wavesemi.onmicrosoft.com; s=selector1-wavecomp-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NoMR1JouaF/b6to7mnXgOMdktiSK3EbJ3FT46nMjYP0=; b=LUWMlE6tXpGyRqvYleV2INiOtnrwfTQXCzZlOva+xPNp9bam+xBS1RNrnxlYDP16jNakeqLKnQ+RBzz+XPGPyMIf+RW4RQ6RtlQXwbizJLLi1hz3kRj8FKw0+XnguweGkFghA1JzKDxLg3cxybQDkTtNb+/wHsTVzLaG5ZxC6WE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=pburton@wavecomp.com; Received: from pburton-laptop.mipstec.com (4.16.204.77) by DM6PR08MB4940.namprd08.prod.outlook.com (2603:10b6:5:4b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.884.21; Wed, 27 Jun 2018 00:06:32 +0000 From: Paul Burton To: netdev@vger.kernel.org Cc: "David S . Miller" , Andrew Lunn , paul.burton@mips.com Subject: [PATCH v7 03/11] net: pch_gbe: Probe PHY ID & initialize only once Date: Tue, 26 Jun 2018 17:06:04 -0700 Message-Id: <20180627000612.27263-4-paul.burton@mips.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180627000612.27263-1-paul.burton@mips.com> References: <20180627000612.27263-1-paul.burton@mips.com> MIME-Version: 1.0 X-Originating-IP: [4.16.204.77] X-ClientProxiedBy: MWHPR1701CA0014.namprd17.prod.outlook.com (2603:10b6:301:14::24) To DM6PR08MB4940.namprd08.prod.outlook.com (2603:10b6:5:4b::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 20271113-ba81-4928-5742-08d5dbc1d71b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(7021125)(8989117)(4534165)(7022125)(4603075)(4627221)(201702281549075)(8990107)(7048125)(7024125)(7027125)(7028125)(7023125)(5600026)(711020)(2017052603328)(7153060)(7193020); SRVR:DM6PR08MB4940; X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 3:izoLmwDAuHRRP3njri51F6/HdUtoUn+BpQsU5OOXOn5XNM4ABbsxvvDm2JFqRAET0jUwM5jC34dvCvmfWxYdi9UNG4+qxzIHL1VbIsjSMV0DS2lo3E/JMro8QxPRAohpprgqa/L8FDsr5HYHnUopjYjpQybYs2DNc7pZXzNDWj2FcMuEP3HPywnUo33fey6R8hHT2fPccBPSDy75Db4gz8V6qY+itcxpzwRYqXLD3tJVqHtcfv2LfXxtw7lcSBoU; 25:TRu33rVZXdHOU3puFaEoZjL1ybNLHL5DOpZYbi9wDfm1GZ+XZE1dB+MEQqhvMMxz0XJ1UW+cUPSh5KEY5VirCsubKAwH4YnqUIpbptcEk2Y9RWxNgMVwbSJKlS6dAE3SwRXQK4o/nQbhaUoL0dIlvsiLO5Qqlu9We+nySQ0N5DAPYwDozRijoiMcBbot6+LHPtSsgVQ75yrN5vCurOJLXh9l0j+0DWm/xC+c1d/lrWQxKY28QhHmMP6XIr+g5JEkFL7SHDVOM+cbmEHnlxfbJZTjd9+/CYkBlv3l2/RkBAz7BvkSnRcS8zyWQwN+ZQ5/ADi3v771gtU80WzP68mHOg==; 31:w4jB/cyEjdW+dyiN76f+CUPJ9oYoIW1kC7KhK2ADs5tHafPhm4/fe/25TWEaLYrns4F1XCHd+wQq5xV85BbphrEBpgpDao1vefBHTuD3o8DhN2YYjXvBqn9Zom+0J17ymN4MkQaPEE7yGcFwooMgovWGwqVDdwK9dwQXFYs9QlNfULDPkyI0Q3orW8Ix45NC90kf/Yk5kZQYaKEDPvT6ZS3qXxDsLn3K0uWlrXTpJIk= X-MS-TrafficTypeDiagnostic: DM6PR08MB4940: X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 20:xoqgIk0YWSqP9GLL6K4Ats622lp0EDVn7Iy1Tgy36QZA9Hue7y8L8ZlLB8gqhGR+0aaJomZJ7UQPZeYl7JR8l5rS2i21Vjq1xXM2tzluSAt7WB5wYYyHeQI24n3oLzmNsFXtsulwizVbNpy18mHyWdnnePZ2uFQnESY4j8U89SpHJGxNEZ+WnrJ4hLQ5sLpA6BxLU3roneRS/eBTXRqIHldRO+xgJcPP5HWdYZTCuOjbIx5zI96G4cRDOldpmhEF; 4:mdI8f+mc726cRd/Jf8WQ0Ur6supKdsY7d5nA4xIIu86Ob6wpcHwCi+05mYcN8lqkHa12IH0KHX2WUoCfF8NPBgwcObDgsX+lFQMbXWX8a7S2jqSuMkuAQ9pzKr3kyBngWV3lAgEXj+TLo2yRI+pv7QOIzIHPpAaSo0pi3ioCY/dwVF5z0RCwPG3JDeownYn+HY7DE+X+hM01uLPuI/6QmIkb8Rp/fp0tpx64AgQG1IX6oAGy4JobKOJ7S8tcZvnH/LKsXOyKtJTMo0Z+IF/zCQLu44ttXWlMRRHPD8I9+3kQi5RFzyg1VugSHTYOpjJd X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(93006095)(3231254)(944501410)(52105095)(149027)(150027)(6041310)(2016111802025)(20161123562045)(20161123560045)(20161123564045)(20161123558120)(6043046)(6072148)(201708071742011)(7699016); SRVR:DM6PR08MB4940; BCL:0; PCL:0; RULEID:; SRVR:DM6PR08MB4940; X-Forefront-PRVS: 0716E70AB6 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(366004)(346002)(136003)(39840400004)(376002)(396003)(199004)(189003)(52116002)(36756003)(6666003)(5660300001)(16526019)(51416003)(66066001)(6916009)(2351001)(42882007)(14444005)(316002)(386003)(53416004)(54906003)(47776003)(26005)(76176011)(6506007)(186003)(16586007)(6486002)(2361001)(48376002)(486006)(6116002)(8936002)(956004)(476003)(50466002)(3846002)(446003)(1076002)(6512007)(69596002)(2906002)(25786009)(4326008)(81156014)(8676002)(50226002)(107886003)(7736002)(2616005)(44832011)(106356001)(11346002)(97736004)(68736007)(105586002)(305945005)(478600001)(81166006)(53936002); DIR:OUT; SFP:1102; SCL:1; SRVR:DM6PR08MB4940; H:pburton-laptop.mipstec.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: wavecomp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 23:nwLlgwNBnFDhP/OVj8zgyPMA6Ll3QFVCmUqJKm9IZI0OeTEy+qtCtV+3NzChCRvVULAXRUSYYaqDUL2wQuDfy4H3aCbcQ0WGFlDncsbakRJzfwgBE3FBh4KGdaJUn1QjMvODS0qtm7V8w6PF9fvorZl+ygnvfdYcATnoScbL7m21u43S7uAnDXFhdk4knb/fIIZExjHFwjP/VUfoiXDufKXlKAF2OFDKMFunRJBVGeXfGjwo/MLFnw0Y6DksnkYDrPkK4vewFKysU9oOvtRC/BLI2HqtuEQTvbbyRYkVkiJupnRQY5q329XQ4n7j0GP8qTc3ROorXoqoK31SAvMyFOmsi2kcxnVqymu2y+nlk4den5b4WPcZjqQgY6qEAEib4Rb6pqQPi5QGFkX6aDNhO2WTUn1ny11FdpoUI2ycb/Hhit2GjOYi2CgHyDfUnDwi0RaTni6+fx5GFo8FVAY2HTwRStd+v5KkAcrMWj+xf/JnjsslaJTZLeJigX5mfp7MXTCugdPMJPozw4Tbg3AZNFNM4Pnqtg196OBs070kHzMug6CfpvJp3f8biMGkO9ZmALTyO6NbKVKqxi8W8jx/qruOuJfZFynqrZpTEz9J8+bNyLGjUDvD8ZS6kSLHN/lFzbwMihgVF4dQWLxQTcVLgIlv5PqIh5UTB74+obXmgZ06uY3cFdjGGAnkicbTDAtFc2p+p0Gu/gO3Cn8KCkXFrDIdaTqkFXOrgVJvsu422KJrd7otHnaRCu2Ne4YvHZYFQkQuqDc+fcbgBfMVUO2rprg8IBwntfWLTwx1b5PNDv9xrdZ8Hx/+lo/FQ77TtfIpnGVIWrPVZW75q7Bz078JL9HJynzs0bB//jNSZQxfPLVuRr781MzgKmNHoQxTyNieWtxYd/vQiGl8Dw279ykU5miKF+BM/9q2+izRaqGXRqwK8oWVstOYmAKdhtbTr4kfVMNCy2UmnIhKMs/T7tM1FSdxXUiLR63iZ9+wpe8Zm2ksgfmj/CtthHYtyPqjTf0c97wTYYWRO1ZsfwkfS6hCDNooPdjunXDSS+Otp/gzTBUEZcNlOkj8DwlSHPr7yGGb86QLKkZjkI1GrGsp4k+3jlnbVgR+M23+n6IqN0K+Mk8UMkSGmEe/TIBvMBeXOLGL3MRNiBddjuiPYvHt0oaufYa836ODHhEHcIMhuRp9JWaHD+QrMAkKgkfZGza8mHd51DFW8NoSVievJIMAwNlk42kp3APAqkDG+4v3mt2Sm+JfOT8TFXfga8CXZMHQoCyCsz5DSjsFD6KpgaFHO0/qYLk1Oj0Bb7a5l6EiQfeUaPkf8dUcEbI608KRdxhovPJ9XDvv4cyoJB/9qlTlMRcMfQ== X-Microsoft-Antispam-Message-Info: FsazF/RKZ9UihUabDrExu8LCdZyUlSy6rupxXCp8G5ltJ9gmVgJWyttmOyqK79/PcqxXAYXY9s9ez4tLD/fMESQ5i94Zf9esCc8IeyKKhSAVCiTW2P21OUhtsH33X4zX1DHIwuzEMN2asfdsIxBm2Glxue1rB/irbVrU5UK+xkFQiH4Z1LfTov7yNgYbZgFb5KP306TpQK33vPntjsLj261WqfryxUIHnihu22SVuLIRYH58N1BeOJmjT5zIwXlW/T9rr9LJxoOjcw8ZRyS0iWLRohRp338DnU2fbIHEs122ujFQX+CZlPcJ72isScHDD3BPBMliiZktElfgwAuOq6wFkAwtHz8H329u4wqDWLs= X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 6:q+HWslPuW8yWsdIg3pW96QJHuRUgGU6IxC5+SfgmPOu07UYCq16hNRxuLOj1PXyT4pi457PrgatPMzruE0BTPOW4NBXm1WxtLl1zP4vDuUWrX1cn/WqbGP4KkyAdSPhQyzLWqI6PDjvT3pgapcUJZAe3SLM5LsKPpCW/yCwFog1wy+TxWWsGbVeFwTn90jEp6WVasNK1L0YoTbZblso53DYKqB9WhbaglnHuXsUGOy4rPriXfAZeUILHWuuBVzOXuSey/pFKw2jxoX7m8dppQzCpzfFFOKcq3DNR11ctGKsr+gDc8y7jOy2MvbnpbpVAyFPFMhcg/xJRU9vK9uLPOockOj4Tfk3hyPkZVM7MhzWiIk0W4Dc5D0kCTsulH+IONoj87p4eaQqUeT+3QoUx5Kr6ondbNJl1NKeXafZWTPuj9kXo8Uz+vnJBrylEKyCLtf+De6XxURY4zTf27dlgQA==; 5:UmV4kcNtKo+fBhP2wyLbgRMxO7YO/Ov+HnJi1Spz0xB1VTOG/BYozNIIsFPk8xxIl7HlWs55C8R63yR9b+RZojlx1bUKgoovtPpWtOL8mMRn37eNe3QeSM7KQICCJzG/Lw0dgiQhrKaWXhRiXbecNJp0zUNHbqhYxortUU6EygY=; 24:iWMH7edXfVh/EN0iqCvcf1A4FjEnksrmMLoSAwcIAHpMhDSz1CCdEUm37BJ/dZuFHFgzGxoNEHgWm9qlqpO6eGr6MoPrktECRS9AUq6spCs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 7:y30vPfe2ZC7YuiRJ1Q2W/tOIdFWJ5diBK7UtiH1wScAhawa1/K4l+/dJlBvQtsbhGLLI/vd1M0qn281uqGvO8YGAM6V3+1kqtg5B0BhJM/gbusNWoHufumreEUMQIX5hT+O7XMVkv7t145Opi7fwShkZT2ybWJdw1mpVue08j58hgWz9idhfvuzk6UTHY2OZODUduFqskM3FAgNhfH7QmXfsdJA7LOWMG+lgGW+scv+E4eqEk1jXkloYIP7gNbJt X-OriginatorOrg: mips.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 00:06:32.3284 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 20271113-ba81-4928-5742-08d5dbc1d71b X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 463607d3-1db3-40a0-8a29-970c56230104 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR08MB4940 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The pch_gbe driver currently probes for the PHY ID & configures the PHY every time the MAC is reset, even though we know that the PHY won't have changed since the last MAC reset [1]. This patch moves the PHY probe to instead happen only once when the driver is probed, saving time & moving us closer to the behavior we'll have with phylib. [1] Please, someone patent PHY hotplugging & rigorously enforce said patent such that nobody can do it. At least not with an EG20T MAC. Signed-off-by: Paul Burton Cc: Andrew Lunn Cc: David S. Miller Cc: netdev@vger.kernel.org --- Changes in v7: New patch .../ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c index 9651fa02d4bb..5157cea16773 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c @@ -617,8 +617,10 @@ static void pch_gbe_init_stats(struct pch_gbe_adapter *adapter) static int pch_gbe_init_phy(struct pch_gbe_adapter *adapter) { struct net_device *netdev = adapter->netdev; + struct pch_gbe_hw *hw = &adapter->hw; u32 addr; u16 bmcr, stat; + s32 ret_val; /* Discover phy addr by searching addrs in order {1,0,2,..., 31} */ for (addr = 0; addr < PCH_GBE_PHY_REGS_LEN; addr++) { @@ -652,6 +654,16 @@ static int pch_gbe_init_phy(struct pch_gbe_adapter *adapter) adapter->mii.mdio_read = pch_gbe_mdio_read; adapter->mii.mdio_write = pch_gbe_mdio_write; adapter->mii.supports_gmii = mii_check_gmii_support(&adapter->mii); + + ret_val = pch_gbe_phy_get_id(hw); + if (ret_val) { + netdev_err(adapter->netdev, "pch_gbe_phy_get_id error\n"); + return -EIO; + } + pch_gbe_phy_init_setting(hw); + /* Setup Mac interface option RGMII */ + pch_gbe_phy_set_rgmii(hw); + return 0; } @@ -721,22 +733,12 @@ void pch_gbe_reset(struct pch_gbe_adapter *adapter) { struct net_device *netdev = adapter->netdev; struct pch_gbe_hw *hw = &adapter->hw; - s32 ret_val; pch_gbe_mac_reset_hw(hw); /* reprogram multicast address register after reset */ pch_gbe_set_multi(netdev); /* Setup the receive address. */ pch_gbe_mac_init_rx_addrs(hw, PCH_GBE_MAR_ENTRIES); - - ret_val = pch_gbe_phy_get_id(hw); - if (ret_val) { - netdev_err(adapter->netdev, "pch_gbe_phy_get_id error\n"); - return; - } - pch_gbe_phy_init_setting(hw); - /* Setup Mac interface option RGMII */ - pch_gbe_phy_set_rgmii(hw); } /** @@ -2577,6 +2579,8 @@ static int pch_gbe_probe(struct pci_dev *pdev, if (ret) goto err_free_netdev; + pch_gbe_check_options(adapter); + /* Initialize PHY */ ret = pch_gbe_init_phy(adapter); if (ret) { @@ -2606,8 +2610,6 @@ static int pch_gbe_probe(struct pci_dev *pdev, INIT_WORK(&adapter->reset_task, pch_gbe_reset_task); - pch_gbe_check_options(adapter); - /* initialize the wol settings based on the eeprom settings */ adapter->wake_up_evt = PCH_GBE_WL_INIT_SETTING; dev_info(&pdev->dev, "MAC address : %pM\n", netdev->dev_addr);