From patchwork Wed Jun 27 00:06:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Burton X-Patchwork-Id: 935187 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="JuRcIY6r"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41Fjsh5R8yz9s0n for ; Wed, 27 Jun 2018 10:07:52 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964840AbeF0AHu (ORCPT ); Tue, 26 Jun 2018 20:07:50 -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 S1754591AbeF0AGd (ORCPT ); Tue, 26 Jun 2018 20:06:33 -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=3lA9G+hmZ6mhlmpgzUCIvpZok0YqIBEznyK0PXXDnj0=; b=JuRcIY6rLuALt4c+IvSxbcHgx7qbJnxZbzMGzSTbT0urUVutjdT7cmZ4dycZxNeEm4jiVgui40AkdIqymFb4quyiTGHyzesTEy8gkERlQ3VCtOOnGKJNx7jRGEJe7w1Dn5QBNptK5iRj191N2Lpyujogisxts3kd9yfddJ8MxyY= 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:30 +0000 From: Paul Burton To: netdev@vger.kernel.org Cc: "David S . Miller" , Andrew Lunn , paul.burton@mips.com Subject: [PATCH v7 01/11] net: pch_gbe: Remove unused struct pch_gbe_adapter fields Date: Tue, 26 Jun 2018 17:06:02 -0700 Message-Id: <20180627000612.27263-2-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: 25bd7062-e010-4901-125f-08d5dbc1d635 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:VuU86JTzWsL+f/bSUB3fg4vZbTtVeXMNwVH3vnhj3j7ARB2jwe6q7IvPTitneQQHAWzgTtotCA/qk4qxx+s2RgAokT8Bb1nO7ydSJl50ysJ+z7XxjKJYn2oI2JWgwWUlfttZ4j0n0lK5FR138TovfaFgA6kuge4Lw83f7MZt12gS90OiNuipXW5iq+JOPENgAzvGlu+80dOMGFqnwt6rAg2VUl0vuFNPfMkPf4+3zAkNaw3r3Wyq/dn+FOgG6Jou; 25:MwsxSOOY9YxltVXlgzG2ushCdSpNiXHqA4y37Ex0eF03l67MDCeRdnVW4srt7FIxFYpLiooijn2HPk+mj8DQ+W3yWGYm1so+pvFiOftrov6Y9GFnrPJJ1Ie+CSaGvTfnp8c7jdnLeRxD56/lfPt7SgC/wbF3lmW70pdcZOFciqMY6RoKTcJy5BExGWRMy0a1Wy1DkoSZkiFdNPZuP7dahSVZux7thxDMx6xgZSt2QDrq5mGXHW1H7tKbRWt94G2nIV/DvnNf43L/fKMD+IntLsHTooSxOgiaGOo7VfFPt/wJ2Lfgh/bVhb3CF0Rhyk+jzB+uEvR/CHM4HfY5AN4P0Q==; 31:Zwev56w7A4S3PytYoBGU/5CIUkg/RuNo3nxuHZoy3GkDcfFiZwrvoHyKn5ypb8PB2HFoNfCaXqTfpJAUHQrSC2HsXykfK8DyvtTqRedkB86y/wRmXzrogKEBye9WiPll/UYAl4dYNZRms+hRLEWPQkUzEkswrugZc666xt5M9EuTFhkypqhB6cnjZkvT6+Khz5IT1yxKc40+PZgTRSafnuOEoXy7YpLfp410qxBhbAo= X-MS-TrafficTypeDiagnostic: DM6PR08MB4940: X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 20:blqHvyYrha881/cpNbGHs0O2J1EINdPaGerYsoBIouVeMA2GMhSnOz+WMJLhPXo8FyCkegzDZ61VLR2Hemxhe/qaPT69SK2QGvcWHXBrerCvZhTqYWQ2mtJmD3T16OYGJm3OoMkUOqtDB6EWdoR3RaLZK3Xth+oRygOQUS0x4o9Kd6Fw8GeZWxS45BNn2H77TEtmx8NzPqQ3LojvFJhmBDAs3h5Sc8XFEJejR9aXOjIgXu6P6iQ1Cm4ID2QG0leF; 4:Lm0OGdVo/RGLg3xvk7CDSeRpYmIBxaRM5g95edr5OvC/y0Qj6w+5ihpC3BzjZD29FtfLccCvNXN6Ao7yCF1Z1wJZN4QXyVdFZdEJrrjNFp51nMaPRFUw6aWILy3wjJ1h5s8b9pADnAwJLi+4vUITKCTB4kQ8US+/bBGv/Q/h30tQo+PhJnDxxQSm9swgRRLTydZ55bDXYViDqw8CoMyfeIUb4R46j1SD590DcDMxlD/Yok0oX/h2qd/IhFucFiVt079MrSy2E3cif1lIKfHSiGTj7whg1t2ySPoZ71s3qgFXceY2JuIpCd6v59o6PUPX 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)(575784001)(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:IxCgHyRrBo6e3WPzcL75MvuACYNs9XJhBHmfvPLh7oVbm1kb/FrdRWi+x89o3P7hkCt7jF9whGf0+Dg73uq7EEw3fxhMKJOCdkZFBrOHk5eN/pljMrjCoVRHTpjZ6r8EvrC4JN9HCYJQmIlpEnyaRQpg5/g4NjuxrMxnOKMTATTJGlzMfN5N9beBtzSf8pCTDqw68Oa37W6U+kHJ8iKg6e/Q9O/YL0wPSo8R+3TNa9ham1bS5jt2qneJCcXkoVHDowKbVlniAZzPuUAxSoZoRW6paLIG0fo7N2TBLyIAiBixcpMc3hN3oqSuTPW2dzj8Up9OKF0itQiWCPEWEOooU1ry3QyR56+RBpTH4G5O/PUF3W/xnpyL/qRRaHQKZrC0V48UJa+PEnJ+CzC9d4XVnfYel9p9YrjYh6KRvF5GYllECN50/ffpLRxQLrFBOlLBvXnbIzWTp2K79m9hjpx3DsAo7Zl1BK9DOSm+Z4ar50g4uRHG0VcGY/U6sc5bY88MlubvJvj2aHM/pnLPfaw5bhIon78IThimvQzxeAk0UhqXYSG4PTZ2YuTGYBySC7SaallrfR7NFxUcj1nfL/6KFddTmztCn6rQtYYI73rdRWQwMkobGBvV2miiWZ707XFMYc2NpJtT/w670QJpuL9RCzP+SvdYZwbCAh7cWiftNoSl9hSO6hU2cC6tzxt2FdYYVRlzdmBLv4cQHx7jlIYtotccpyFJ9VJkZ41bg0Qzgs6R7BrFWWtcDSZh5Hvl/g922uYt0Pi2SCLHfh6wYiA3GZWoAOQTDFLlKJ5RX6My7jSpHilOjsV+XqEsefU2F30+TI/sOxRRI1wM5KTF7DBQkuIz/0SV7blCPrxXJ8PwiO6nklN9MC5JSVm3O1QrzAqbXiFVCX/qsp5PL63JWE1/hDk6/1/TVB6zL5EM0Gvpf21xHt+ij0uRWjRmnVQ56ruZ6AjKlCEhrgr+J6ebDQHt09hIqXz5eleUUDA1icLqYXvVZLwvt2p0z6Ne8wZJyUdsvPCDWwJDrsH3WjNbCh4MPs0+/Es3Gz/l3pu/QvGO4X0AGLNrCbmCexsWsB9PIY+mrJ6Tt4MTjo5HkmM4WlvrOCexT0kXvI2HUD6PrvOVB0Npizrl5QFT1X9liTG34jfpRgg5t6xcGRq5Yo5LBiEgR+gKPq3e7ZsiVPo7fSbeCWcupR9GG67jJZolnuVhxGPpDNPPS9F2uc5BDggK1glR58pQsZ4soKO0v21dju2G0bqzm1DxKIiOaiYkuUgBoLfRck73bgPZOc5Wcu/RNhhIJwj5wPTZY5uDzode0eeOXwqdHSrwlt913dmCoMoOqx6Q+P8iTCqh7if++h0ejY1bcDXaR0LRXdcgKf27PTUkvoQ= X-Microsoft-Antispam-Message-Info: yKy7KK62j5TCSOyJLhRfmrRDY1kfF/p6r5Wtsvh2B/C1uYXGXE8BjVXBDYF8wm55axZv3aS9OHygA1FkH7UhP5Ff+lm6ltI/Ba9IwQXFwvMYUnjIbMlpRwhN5+7Lko/MBK/A1dc2DDUWd+tDwiMfGsI59fOuTdVBZm50lPussMJqZ1IY5dWmyTao7lA1ZEQZ57JTFtKkAOhlWu30Elt56gz+HmOWLBLGRTb0nEnuwLdP6O8BALA8HfbP4K86D0/Jxt+Uad/bicJ9du3ESq+F6FmYgeBt4mPYSriPGQ11+asPWlzdE+0jgIedtZZCdvF0t1UtSdl1UhC2IqPKW5Prjy/B0jFi/7GSaD41vQ43hMo= X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 6:6e/v2zOXi9ekS5JOjQkUlkQAEglTLNN4Cqd7YF7wvrtRCMOei9KDBWv02mFDtPKEZ2LdRdnf61zWqaVehOb2QtzcstMEbqbgGzzQzPRMW6d03d8WCU46PtaT8QKSHj9ItTaQ51KlhK2iyI5EfJOyC+7VQ/rJtoRBO9oQ+4n4p11mSa/uSD0yweSppNLPnjMj+m7k5FqwQWZIxrAfEY+hRIO6pT0IjzFEhei3W9YqMUjInedEJXshNGKGdF9L5qpRzn5R3Pxlry7EAqMtzqWwcIXWetmTHYaOWAlmBws5a5DruIrNEZ52w3XUwCD9deN1A6OAJe1VDwbxWCXiwC/V09kFMRK3KMrQaQK4v+9stQfUZtOcAGb1HsB8Cze3i1/4ZYsjUsp1nHeAm21MgjRcsZ4pgBhHrfS7qT4fHlmIc0qgb7VdMzfHQXwYRSb+IqxmsCexye0POZ8Mk3BV0a53nQ==; 5:ZojH6oCh3exXbLUh6anmIQBlrFixu5TnSCbU4FDe10+SwRB3HPXR/lmDOy01aBedRIKXRxvC0jL2jYc32wedppOPu/QIUYMpKGs4iBRrieoZbD+dY8AO50jTBEvbIahBO9+GWYev1XbkGqchen0cUG7IaqjzNcZNIZtJ7e17LZw=; 24:ImqCoSVIPItUgTmdLlww7VAWWKkI9CtwBJ7FYVKuOrU8C2Ff6ZfBnISu2VX/cKKisLT9XT/ZC9pUhZ0MgIxB9HB3JpsjF8vHD308KnZ5kjs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 7:5W72/GrXofcLNqO1cByu8P8wtxigJDW+GkjxXq2/+PcH24q+G2cjdMXRi/GgstRK5q7EEx113KqAoI3nOw60jqjYHS+z2/FYYS8wLQhr0salLYtZ6DYSnXAlaJ5lSF5duW4X4Z0ybVHQHzFg7P3lFpvrz6bSCr6rTW3fvO7FLXanqXQYo7iVBsnjXoBTRjgnkyLX1HSEV9Z2MaLWKKyJW2XbH9GwR9aazkgHCx393wSkZ0G6t9jcpj/xgJtu30a/ X-OriginatorOrg: mips.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 00:06:30.8194 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 25bd7062-e010-4901-125f-08d5dbc1d635 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 Remove a bunch of unused fields from struct pch_gbe_adapter. Among these polling_netdev, config_space & led_status are entirely unused. ethtool_lock is initialized but we never attempt to acquire the lock, so that is effectively unused too. A msg_enable field was documented but missing, so drop that from the kerneldoc comment. Signed-off-by: Paul Burton Cc: Andrew Lunn Cc: David S. Miller Cc: netdev@vger.kernel.org --- Changes in v7: New patch drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h | 9 --------- drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 1 - 2 files changed, 10 deletions(-) diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h index 44c2f291e766..be218ac81f21 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h @@ -555,11 +555,9 @@ struct pch_gbe_privdata { /** * struct pch_gbe_adapter - board specific private data structure * @stats_lock: Spinlock structure for status - * @ethtool_lock: Spinlock structure for ethtool * @irq_sem: Semaphore for interrupt * @netdev: Pointer of network device structure * @pdev: Pointer of pci device structure - * @polling_netdev: Pointer of polling network device structure * @napi: NAPI structure * @hw: Pointer of hardware structure * @stats: Hardware status @@ -567,9 +565,6 @@ struct pch_gbe_privdata { * @mii: MII information structure * @watchdog_timer: Watchdog timer list * @wake_up_evt: Wake up event - * @config_space: Configuration space - * @msg_enable: Driver message level - * @led_status: LED status * @tx_ring: Pointer of Tx descriptor ring structure * @rx_ring: Pointer of Rx descriptor ring structure * @rx_buffer_len: Receive buffer length @@ -579,12 +574,10 @@ struct pch_gbe_privdata { struct pch_gbe_adapter { spinlock_t stats_lock; - spinlock_t ethtool_lock; atomic_t irq_sem; struct net_device *netdev; struct pci_dev *pdev; int irq; - struct net_device *polling_netdev; struct napi_struct napi; struct pch_gbe_hw hw; struct pch_gbe_hw_stats stats; @@ -592,8 +585,6 @@ struct pch_gbe_adapter { struct mii_if_info mii; struct timer_list watchdog_timer; u32 wake_up_evt; - u32 *config_space; - unsigned long led_status; struct pch_gbe_tx_ring *tx_ring; struct pch_gbe_rx_ring *rx_ring; unsigned long rx_buffer_len; 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 43c0c10dfeb7..8908ef654d94 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 @@ -1998,7 +1998,6 @@ static int pch_gbe_sw_init(struct pch_gbe_adapter *adapter) } spin_lock_init(&adapter->hw.miim_lock); spin_lock_init(&adapter->stats_lock); - spin_lock_init(&adapter->ethtool_lock); atomic_set(&adapter->irq_sem, 0); pch_gbe_irq_disable(adapter); From patchwork Wed Jun 27 00:06:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Burton X-Patchwork-Id: 935185 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="VYN3Wm5e"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41Fjs74P5Bz9s0n for ; Wed, 27 Jun 2018 10:07:23 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754770AbeF0AGi (ORCPT ); Tue, 26 Jun 2018 20:06:38 -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 S1754676AbeF0AGf (ORCPT ); Tue, 26 Jun 2018 20:06:35 -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=Mwwg3WA2X5DaOz1alolBpEf2u60ZNvPBzdcQx8EPCtM=; b=VYN3Wm5eoNQmewnO8VtoKqZwEsWPgbRPtxqoYJJbaifMuCdPup9uhGxjCjZp5Rtz3tudYTkz2cF1295o52KrgNJ11U+99gxgmGx5V8D/hEXV3BW5hI4YIdGjN1HIg+mr+86nu1JQPbR9itQCcaVQ60uoCGwqSp141HTbYHB5SRI= 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:31 +0000 From: Paul Burton To: netdev@vger.kernel.org Cc: "David S . Miller" , Andrew Lunn , paul.burton@mips.com Subject: [PATCH v7 02/11] net: pch_gbe: Mask spare MAC addresses all at once Date: Tue, 26 Jun 2018 17:06:03 -0700 Message-Id: <20180627000612.27263-3-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: 51976451-13af-4de1-94a4-08d5dbc1d6a9 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:cC4fk0wkxBSJ5qFodatzzSh3JBJSoMHcviXYuTYkFdwrNgqHesWOj6ejNc+A+J8+niHn+wKyKzgWZXAYZ8A6dRE8TJtFiP1oCdN4P3qBT1LaZAYyHNGOA14AgDI4VQESo0910q0kHBSqM752j5PLHjpDtMlwr6IcBcu4Ut9h6vfkgLQ/8zhrmpeiwVYnK+ouIF5ZcKJNx7XUv76OVZjkqibcoDdab1VxzUVB+UuhJDgpLoXT/+stI79anY58eWMs; 25:MJZKUvS+o+3geveC86vi08kDRR8HuZSGKOR4bxghhx/I1OMVtPlkSUFEk4o4FNEuoI8OkghxBTmxjc5kn4iNMjA6iLWpAk2L26o5l4ES2ox5ih1P3clmDcgs2h8MctJt8qlvlxCKUG/EV2X8sqJUah38uwqalYUEG/VI4t7M54G2Ha99ukFiht4gjTbIaU4gEOIjjpo4L7XVTmLPKy+BMtp3VwbDRHc+uWHgk/hkowiBbckA12ZrOB2/doVQhniLbIY66hJ6CbP1/DoA81ZKRrBZ+m/OdLGZMFcGh7M+vA01ndM8Tg5TJu5cxn43c0NHYSUAAaijLToDp5L4vosemQ==; 31:l8eIwP+lKTeJaiJqQG9lTURkl2hBlXNuz/NG0/WEK+87EBN2vnKCffzAxhsLgcm+yvpxvM46LWQdUbCuEbespmUouV7DsU9cdl95vWuYYFiO0jBw0tMBVj3H9K9JaAwxojhvqHPhcPFAZRNOJxxV1TIvXvs3STNMTT+rgtyCKO24GoQFqrzjFRV2bAIhnPODvUY9FXK+My5IfBHLTvGABQqaN37rGGUkyewnqrLEpUc= X-MS-TrafficTypeDiagnostic: DM6PR08MB4940: X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 20:vQrww39rtmkHR22+Vd6mOVqvleU89PioD+ng8PIGUjKJQK5H7VdpU9B7unsJNewthi7JLFJ294dJ+ugeyqzLwPz70kxkASqaoSdzNk66LxZyLl2OxZ9BP+iGPZhcjM7GI4wWV/pIqpTOJ5Ub+RT9mYVX3mOvj2lzBv8rnr0X4yrGQk/Ucil57q6uwmftSqeaXhLA+i9+SLB4CskRQMTeEseigvSfK7kdKaXs6oIyrDgpstYaVRT1b3Zs4Tt9Qc6T; 4:a/NeFQmm4Zga4RF4mH2jec+wmCMMO6LbZZq1uXP8Z8tbzGAHnPNAXODcJEjcbupokMXuznf+v1VaFdZZKD5jDI9ny/XeIzi30y5C+Ih2dqvGx3RFljccew1FOQZWggYJyvbqXdKJlbLRavjMhPBN+ihk8Emio0ipGJVpj+LPQimN5Y84wBlrPW2IhOG2530FdqIE7hFF4dt7rjyqIHkoIP7BGsGaM/13doKRezy34ZSCT46Mcvi1e7ZbrEwz9KO958/5+haE7oXUlg17BsCjl2zPuZgNVI5s0q/v0U3U/mUKCBAbzRNiLMVcbAv98MsO 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)(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:kAZMLn4F3l6dVaTPJpxwOjc2iQmkC/7ftf/azG/ZsZb6XCX4lLjewXT7SMyUhM26qYzivSnCETNj1/izT3p+Cbqcfq/HcANL3+ZduiV7IWTfX01BfY4jd/K0yIdNB1cObyHSGSG3rF97EIQjkBp6dNrDcQOLrBf7k7ThHxN1N17ZK8I03EJe/WFUQ5YfvTNC8kUW2gy6X9euxIqckBgt+N3xamdtzGhQ2PyxVbW0OPy7Ky+gyzD3RTCYSwqH2xkrjoBPAq7RUbqRE+t3bUKlbAvt+ih40j4etN5syDLZcOKJVwjyaLhEbuG/LSMMonk5l0Tp9o/dN2Ks7BDt+d0D2dwGGr7/qIdR8suEULn1PcDAU3Zy5Ajmc4x0ovBfnDOtmp2tJOxOgNplJ5eaT5FCFRxC85B9f/sZb5BNouKzDCKxMFelkCJ/LDmqNAeVUPCmLHmX00RLKh5EnZxrrtEzdJN18H9g2gUHhw5KZ1Ah1VsUJBX6Ylbqg0nw05bF7gL5DjYU54txCZHsgVjCWN69a2T54nLdUNIPvfkn1qDwctyLMckOmBMgNf6MWCguknWKy41vmjssy0KTSVYvjnRaBYuj7EjSKUQPcpVxrLIrfJE2f9erBFkuwCFdF7mcmbb+Fuwl2xF8ZISsFExuK9tD9UJRuUu92NGAKP1EDJn8CmA4DGwCEIuYAWASJEaj1qNotcwKaiNYOstlawcWmgUd0YTjS28Sfl9OgzYa8FdJozGLhQHzsQT7klXajSXtraz+PKmnqPf6LkeRWyWwcJV29B5H77+IiGZ2lEAXhU7OQ2IlxATcd5pnE/308QKzbb71oBWi+h9bjoPBqpn0hTx7tBqi57aTngu6ATr8GADJAutRzuTUTUGqnrMwtXX6rohNdjKwOJ96wznKt5hiMbNS6MKTBmSVms4WSr1J6I8GSDp4TUWIJmi2MAsiUGEVw8XC1jf1L9z4tdptOIWJew98GKIAeodmwfyeCfnE215TQ9etGwUDW7sB3RssWWmxVFum0Go7ble+xX1oFD/2J08Fg2WDLToluFu1D2uvaN6t/0PsCG7GLXFldG3h/okwBtjybjmg6SwvGr0eKTSjLcLmfVNObeNK8K0X9Tmjw4RvDjS1lmbEm6NhahgWUlJqhCA++dfGPJV6G64qU28wFvb2UCu/eH9wfhl01JGRaNDzGQTihSmj9+LKZ7BiC9TSIlxG9tqs3lpHFWe18qZJ7AhtsICUEZNiCk3xOAScKeUO8Jusd+z4dOSUtkeqo2Km3YSZJte26PD6gODFva+D1FHBFPFBksH+6kB5dSCGyYXRGMtCJMbUQge9YNL2MgNIiMJs X-Microsoft-Antispam-Message-Info: CIcrkli95+WGScoMPos4iIDn60OWNzRGRXTh2j6/wcufQ7mojQ/5nr8IKnCIktkzqaTr8NGcToVFvGsqm7Uv1vSvaCTGU1uxv31LIvfRd1v0seMv/ArC+tOIWuQx/n/pE3IVlY7K3rgtxr2udgITRtx2N62KpjvmdQGDcMgu4cflJj/IqQNXj+k/wCGZaWKyMT8MeY3VjJzW0dvaRLFosLDfD6+UM1jA9L4wEkzSz19waAwaoRumAM4gRCWSbYqrvkdlo4vG1RVnb5a8rBamcPdzC6QTKQ9KDYE1JgmngDEqCCyH/E+xdKQh9UbVWKjmgz4SmC6KMiqDO7ZEXEaohVz5TB4XWgA/7SIvJgfIoXc= X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 6:VmeNnqjiyYL3rsD2QTaGZ4F/Oc9iiUazVxvCEzRjkat61A2XzLx8t8jsz8F6n6nid9mt2mxNup7K9zTZCD0JxtWlqRo6L/KHwYAHbmWzzoIGu8jyIRwaEWzw7U/8RNbmfIo6YCMAfDBOXo2XH6YkY6Xw0nOQ5LueFT5ekCVMwADzDk/P0lqTyCHB3cbasQngmHc9rQXmrHynWB/TchH0NQrz77Ho2AXu/UPlvmDIvcV/vkG+eZ1wXKDk+W1JCBbO+o3JSn/P2lRxYq98PLyMIljtKNRRHFWjKHWT8KcJXb95iNdHgOFBRqymLvwYm7IAbgbip5B/BEe8NWfYTPo+VbpZHaE9V5MvJffqqS0pLyuwGgyI8fijebv1mAxSDRsMdsNKnrHmE+aprF/aQrXALdVoqhCVD8h6kipZTfB9f9gSSoGuKezdggwUxlmIy/LzHqqeHpqnsGQ67y6f+Oj1sA==; 5:DDe+6xA+pDsa1qpvkBS3UKZE7uJjWWYesj3h5gUu9M9U/j56cM9wJUSiu75ZnKINRfStgGmRY7j9mAXaSppghKJUXMt5BNgcFY46U6sbIFBqAZrBiK8iHat15Ub8HGAFGRN3dI3d1wBQd1EDDzcWUF4+2xIzs4bqwWjmqkxMr78=; 24:Quygy0ZI25BmWAYJ2/2NEn58iDotSxVRlxEnKHSKnUb6R4Q9SlTgsrR6bA0UmObHXaqPFQdnEGD5jpNAemTdv6roWTnsBXjyAKckDOAEcsA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 7:sWJ0t8Drkwd/PyOqrqvz7BrnYXysEHfeEtywJc5glKNQ9aI5lIzCIJaeG2Ah6bdwXmgX6Efh4EItMxSJih/cEOwqbzS/K1xiM/W8fFmkosb/7FeZ/sy7jQw2UUMkPn+uk25OzG3dAS/jrQgGfGH/Dnbv6UygvbOaY2wYIXgeSHzVNoDha1w1+706KJmptviB1O4PkODD28H+UQbMxquo9Nq20n5iSW+4PNRTy5n/Mo6vEthJ4JDOt6wfNWSYGnst X-OriginatorOrg: mips.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 00:06:31.5839 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 51976451-13af-4de1-94a4-08d5dbc1d6a9 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 pch_gbe_set_multi() loops through each unused MAC address register, masking them one by one & waiting for a bit to clear indicating that the change has taken effect before zeroing out the MAC register. This is needlessly inefficient. We can instead set all the desired mask bits with a single write to the ADDR_MASK register & wait only once for the busy bit to clear indicating that the addresses are masked (ie. ignored) as required. It's pointless zeroing the MAC registers since they're masked anyway so their contents are irrelevant, so we can avoid looping over them here entirely. Signed-off-by: Paul Burton Cc: Andrew Lunn Cc: David S. Miller Cc: netdev@vger.kernel.org --- Changes in v7: New patch drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 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 8908ef654d94..9651fa02d4bb 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 @@ -2140,15 +2140,13 @@ static void pch_gbe_set_multi(struct net_device *netdev) pch_gbe_mac_mar_set(hw, ha->addr, i++); /* If there are spare MAC registers, mask & clear them */ - for (; i < PCH_GBE_MAR_ENTRIES; i++) { - /* Clear MAC address mask */ + if (i < PCH_GBE_MAR_ENTRIES) { adrmask = ioread32(&hw->reg->ADDR_MASK); - iowrite32(adrmask | BIT(i), &hw->reg->ADDR_MASK); + adrmask |= GENMASK(PCH_GBE_MAR_ENTRIES - 1, i); + iowrite32(adrmask, &hw->reg->ADDR_MASK); + /* wait busy */ pch_gbe_wait_clr_bit(&hw->reg->ADDR_MASK, PCH_GBE_BUSY); - /* Clear MAC address */ - iowrite32(0, &hw->reg->mac_adr[i].high); - iowrite32(0, &hw->reg->mac_adr[i].low); } netdev_dbg(netdev, 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); From patchwork Wed Jun 27 00:06:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Burton X-Patchwork-Id: 935186 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="k4J8564G"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41FjsD0CsGz9s29 for ; Wed, 27 Jun 2018 10:07:28 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754881AbeF0AHZ (ORCPT ); Tue, 26 Jun 2018 20:07:25 -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 S1754733AbeF0AGh (ORCPT ); Tue, 26 Jun 2018 20:06:37 -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=/VYrvtm2Jk6y3KL/ZuMr7j8OPOvXuAG/zBdF+Ak3f5s=; b=k4J8564GxI5+GfwBf9tJrxjp5QWZyKt5vc4vz48rV0hXGqqdm4ZXG1mq3vqkSTIViDARVj6olL5vuReiLOXE6gg/DsfYICjtweNjIgvu6/+2Vef/QtChQ04DKz0IRPhhGbFK+JPQigqjymS2rwJ5Y55w7QqTuAxhoxSIXcqvIXI= 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:33 +0000 From: Paul Burton To: netdev@vger.kernel.org Cc: "David S . Miller" , Andrew Lunn , paul.burton@mips.com Subject: [PATCH v7 04/11] net: pch_gbe: Remove irq_sem Date: Tue, 26 Jun 2018 17:06:05 -0700 Message-Id: <20180627000612.27263-5-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: c9885e2a-c513-4f15-f524-08d5dbc1d795 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:5TaEUV0+MFsKY3f6VYelI8llaTvn6BA9FPml/AuqUs5rlrAi91SaErOaJkXqFrnhEBgupVqL9EwhC1IxzO0v2aljj6H6ZLTv4RHA7P3J0cgJVLjcPy8cUJWDt4jlg6z/DK5cufOB3OcCNToOn7IYqbC1Z9r0DjnrZUBapplfbTYHq25ITqirNk92F4trU46mFHV1T3UZi/KgcoNR20U3tGYzfcX0Yrj8uS1gQP4PegxsMBkIb6b7eE5Bj5WqjwJC; 25:kXQ67M6k33OdhPiMc3sVEpkAad4E2KY4ZdT3y3DMa3zFZi6xvsv8J0+l1W3aqNwqKW4eqxq2iK1quB+tzJIvTT2PWdPRd3djqnDdPpuxgtddX/J3Z2MMAqFn2ZRbNbdtnjeIxCpBKfeDSnlTLCLw1cT+R3wSlTVCpawZxb+YnMhDYLHIrX4P8OSMDJwwoDy90OXksbR3fM5e3PAhZGHEF8tqBZ8Ag7BSoVIawq2oyVSsxp2W/A4q8nZRxnA+pyGiLM7tl2Ev5rvKlLZeo1grs1QR9kI5QYlpsw3S3IjfNrJYIaXO8cr6cl+QVEF7Fsl/6rTOuZscY/mt06esXlY+rA==; 31:hGo8eSP2Q8Eqe7e2Zo0O91t/yrKrj286GNFM6aXufDfZdtvV9I94X4YpslsmoY3B7EfLsljDBubxSZ7U/pi/fIkQF1Lnq//Z4Wih11L8NtsZVz/rE0iDI3aSCIBwoNlbU/wOAq3MJUBZWm+zz1/3jpa4fczSgl71pmxKUrrDzy9gOw63G8w+HvoPCcE6e3jbYQUryPJ6uhrJH/Mpmiv/NYiaFLw17zJSukcxoN0lLTc= X-MS-TrafficTypeDiagnostic: DM6PR08MB4940: X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 20:585+WNA3jS9zi6M1WAEnlwXiN/OSKzbLHl3RcNayQBrfgTa4jBELijXUnY8Vft7KDCA0uNvP57cl6+Eyrf58+tVdz6zfuYhOza1ygdq6nrbY2TzHu3FLBOlxSQtLHIRXOypZenqtSjXK9PK5DECfpiAc4y3/Vda2PSDkbqLJZ+Dq1PMlnHvJ+1AHnXST1CkN+wdIDSysE6WtRzIPj1iR3Jq/Ixy0tzUKu0qC9UiPruY1NNfBWLRmtdXmiOVHxoGk; 4:OCM+CjYfg4STHaJwGwbn8ckAIbFBxfM9oP+AAwGht6s/S6F3qGdNvl149n9LVUapxamcHmboTnZsrHCD4g08pNZAvCs83tkxst4GhFmuXAPLVCmwmw5cpOG6IBgytpA+8JXGZNvjCZeEjsw9VyT0ha6v4zaxvLzyDVlobyGs7zvicOZRGLRaviA0scht7Ine3DcAXwZi0APCdKM5rLXjW6kAEdW+6DXGAA6lmGXYLY2jMHRjV7BzWjWPTDT6npClyBhHlgMmNtfBdo28eZA6XNDC1uQymPmJ6DtFMAXgxkbTvuwXfUmTKi9FrkFX1TH/ 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)(575784001)(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:HBbzCMWoJWDPPMdl9nL+DhRq6ynjsaB20hb1jXj2qJ8PnZxTbcnhkPSjr0YjnV1Mek/jrEU1PCriOLpkkPNOf5f7oIahK2e6T1xIoNUKm6dVzl3XGa4PIoMBy+FUSDD8IuMGEMRNMJn26gEgRdilKZJV5vgtr6NrMwxHBOLT0X3bmBtY/deLdfrEu+ZEXx7Z6kVgb38EfO6OmgH6CpMsgPt9nV9F0uiDKGSOseKOHloGgsVXpMqlQsWLLmCh/uiACfhGDKvepvfOtRrqSloWx+1FBJdnfJ71Cxl0nLn4cEmLWFgTnRDeHef6O1ISMj4AQ/rTXgY/vhAB5Qe4Fa5KBxThm4y5YlPTQZPP/iPY7Q1gKH1f7Ud4IzunJBXLgPjr4w8fIA1PYHRR8ix6w6ji+kyNKzPBQgbTHrO8d8oH0EUlxgT9xFPNACNlnzaPw2Eta1qUIYlPevrzrD6Kee1ie171kySEjjh7OlgB0OJ7fm5ohOXqJuSxqJZlAsa/tCmDlrFi8NZObZxI4MYzjQ8o6KYYHnaRdq9qMxyFpbFJ7/OAOwNpkd6Zuep+gR7UHN5YV76uTjxX2IFJzSUROueIeDp3G+wB+j/UOBEaoY2kF5fjcwaz+CkqpdVBg1HM+ZTTCsNboAfFh6OeYDFz9Y7qhY3QJ087f4tdgaq9uaDYIfKEUaXFRU28BTvFq+nUuFKZGGbPf2duqgkgmTn+iJQqj99SkUDQJMy7xkafZU8ciYR1KzXGMUIN8Wbe38bhWvlXp4CB+XGRHXwWShX2BnYKKS+TOH9+Z2xVkIqWZVCXsS5bp1EX36WCFf+xqit7JHApYzAvBVV0aLxGlEPNDUzn82kVSHEvgdMCsPD04tCgm5KixDx5Y3fg8H3X87T7hBOQ35N4ZCnwIZ3j0epZLhbmMT5nn9AF0rApkJQdmENfa3wdjdmv8QoX5Gw0yN4GH0atKqdu0gy92fnXs0iowP7o5Ua16fffxxjLju/pFLO6Nf+OoQo+VMdw+1GnsxxVn7VikQPdo9027fSJ3mK9CMrVk7Ma0jC7BQlPaj+8o4Nh/LG2yDcisBShUFZAAQoQBqe4EZTGk/Khoh+9pV4O0euZokAOk0semxcN1u8WTt3ocpX1tNQapgbyC+8CVqAK9mscs3OnD3gS1jg1OygwSQZzf1HuXbZ4TToa30J4p+KyT1ndQpeTzO++NaAbxTRAO1S2usk6PmWCHJtHI5w9L3sWp6b9paHKH7I0pXnFnBRjFc+XEYLAL/eCZsDQ5a2Y++NxsHWw42h9YKU3zVLJcCdVqlt19flDUOOchXipjf5ms+wjY34fGfCOjrLrHvFwVmBjn8jIgw9aca3aOLXMJp0K1MSaw9Gk22dGwmVoEr/OMas= X-Microsoft-Antispam-Message-Info: cvH7MAoMDkptnq896XZIMRZ64JG2QR+x6pbDUlwlxpbiZ27GseITU5xvg5uKTiqOq8Zt3E8y1AhTLoMk3GAMKCiwTft0vyhyEcd5rryJhpqSHmpXrlzCcm8ucP7WTWNflvCrXybFjCJb06tYgvEvsNvHLGz6/G1rU98QySqr6xiw4oPzzqI1q3YtYN3d2VIMDyShNpqwgABTxKeREDnJY51lHFs9ZxSB6k955whTA7vqcnv/zj+8utcMnxq+vE38zm6hYt3mvGHBQpH6YWQVHVa72HxcIXYEby5zDEEdwvRZh5h75PdJEDDO3KIRN/p1CaklsCJNqeE1rdbRgaeHFQcaL1ySIytu3tcXk2U5+es= X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 6:MuZ8Tn7zWGVxHwlZRZ/XHwhz2O9qwptiY4VRmlLaYoAzAe01m79kfYieRL7aWyHIoCHgUS6g81yvgmiy6EMROyq8VNWWqMjclRjkG2QyHQ/ZxvjzbVpDxw38toZQBgyvUsTnYZjdVpRrGGj3Fey0EsrCmNyU4wROePUiwjBCCoMgJPFQKt4YKDk20N+NqT51Pxl6GGfksYNK1m2+dO+LmqbF/KX2TRFCk0HDJ2GKSp3YwAM+jXlQGJsQK7q0iewAGKkXYDJ1Q9+mNPvNVsI0r4qHqGnHE0hFKppAMN5KbAClBCFAMaUChEFOkrqSgCIK22LojbZJ9wPyQvF4QiKmFVTwThxPSlW1KgpCsIZ8myvrE7OR5j5OzfwzlNYnjp3BowJVzaTOSUvWL+eOLT/sw1e9+46lgmscmqUjeMDwBn33d8Lm06cN5itKUxLa8qiQ6YRM1KGQxEVyh4VcDzTyOg==; 5:3jtbTvojq4lh0fJX+ZTU6t2vexZL8hD5dxC5XxYRETX3kjP+myZomcDaN9HScN/4wFOTidDjVv76PNh2Gp//Ztmnlw98vF3yZ2Yx8X/VJVf/fc1xKgWWfbOikQJbfLJNwb38k3Nm6JxMCzlH4MUzn0ctQejGkYuBIAcJgc1z4OA=; 24:ozdbmrewcER6+UffPjwIIOO6xiWf+gtXlP9lytawBmzfqz5AtTX2Ib+mzPSWuBVdvTbX35TMCMWWFSVR8+yVN0baRKAE2VkK4BVgOo5+8KQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 7:fXSLEXuGEfDPuAlkXxUxUDiTW8b2O4d37dJWrEPCX0r2ctU5MJHT8zt6fWQvomAkWNHrZ8JH26yHzi+XI/KvKpF7Hk01CUDcN2l8ILyBv5aLwRxCiGMl6zUzmTiBhBaU/kLEAmQw6Vz+2c/SH6IzdzDYfl5O/7VwQPDuq8BA/xGhQMGXZT9Z8DmDRqnoup1xDM7lr+y+uZlrum4PQ8IaznY10XPPS6xI1DtHbfWN+vPPISYnxBaIrCTTpRP+nOL7 X-OriginatorOrg: mips.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 00:06:33.1320 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c9885e2a-c513-4f15-f524-08d5dbc1d795 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 uses an irq_sem variable to implement a sempahore that seems to inconsistently count the number of times we enable or disable interrupts, and only write to the interrupt enable register when this count hits 0. This makes absolutely no sense to me, both from the perspective of how the implementation is modifying the variable & more fundamentally the fact that we know when we want or do not want interrupts enabled without any need for the semaphore. This patch removes irq_sem, so pch_gbe_irq_enable() & pch_gbe_irq_disable() will both always write to the INT_EN register. Signed-off-by: Paul Burton Cc: Andrew Lunn Cc: David S. Miller Cc: netdev@vger.kernel.org --- Changes in v7: New patch drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h | 2 -- drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 7 +------ 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h index be218ac81f21..1bb0ea4f5503 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h @@ -555,7 +555,6 @@ struct pch_gbe_privdata { /** * struct pch_gbe_adapter - board specific private data structure * @stats_lock: Spinlock structure for status - * @irq_sem: Semaphore for interrupt * @netdev: Pointer of network device structure * @pdev: Pointer of pci device structure * @napi: NAPI structure @@ -574,7 +573,6 @@ struct pch_gbe_privdata { struct pch_gbe_adapter { spinlock_t stats_lock; - atomic_t irq_sem; struct net_device *netdev; struct pci_dev *pdev; int irq; 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 5157cea16773..ee38bba8b9ce 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 @@ -761,7 +761,6 @@ static void pch_gbe_irq_disable(struct pch_gbe_adapter *adapter) { struct pch_gbe_hw *hw = &adapter->hw; - atomic_inc(&adapter->irq_sem); iowrite32(0, &hw->reg->INT_EN); ioread32(&hw->reg->INT_ST); synchronize_irq(adapter->irq); @@ -778,8 +777,7 @@ static void pch_gbe_irq_enable(struct pch_gbe_adapter *adapter) { struct pch_gbe_hw *hw = &adapter->hw; - if (likely(atomic_dec_and_test(&adapter->irq_sem))) - iowrite32(PCH_GBE_INT_ENABLE_MASK, &hw->reg->INT_EN); + iowrite32(PCH_GBE_INT_ENABLE_MASK, &hw->reg->INT_EN); ioread32(&hw->reg->INT_ST); netdev_dbg(adapter->netdev, "INT_EN reg : 0x%08x\n", ioread32(&hw->reg->INT_EN)); @@ -1345,7 +1343,6 @@ static irqreturn_t pch_gbe_intr(int irq, void *data) (adapter->rx_stop_flag)) { if (likely(napi_schedule_prep(&adapter->napi))) { /* Enable only Rx Descriptor empty */ - atomic_inc(&adapter->irq_sem); int_en = ioread32(&hw->reg->INT_EN); int_en &= ~(PCH_GBE_INT_RX_DMA_CMPLT | PCH_GBE_INT_TX_CMPLT); @@ -1954,7 +1951,6 @@ void pch_gbe_down(struct pch_gbe_adapter *adapter) /* signal that we're down so the interrupt handler does not * reschedule our watchdog timer */ napi_disable(&adapter->napi); - atomic_set(&adapter->irq_sem, 0); pch_gbe_irq_disable(adapter); pch_gbe_free_irq(adapter); @@ -2000,7 +1996,6 @@ static int pch_gbe_sw_init(struct pch_gbe_adapter *adapter) } spin_lock_init(&adapter->hw.miim_lock); spin_lock_init(&adapter->stats_lock); - atomic_set(&adapter->irq_sem, 0); pch_gbe_irq_disable(adapter); pch_gbe_init_stats(adapter); From patchwork Wed Jun 27 00:06:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Burton X-Patchwork-Id: 935178 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="Jla57Lz0"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41FjrN6Yg6z9s0n for ; Wed, 27 Jun 2018 10:06:44 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964780AbeF0AGm (ORCPT ); Tue, 26 Jun 2018 20:06:42 -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 S1754676AbeF0AGj (ORCPT ); Tue, 26 Jun 2018 20:06:39 -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=Be79Sr6b4oPvjIygfbgy5nfQ93jNinLzL9FWJwuTtR0=; b=Jla57Lz07l4QlWhxGkK7TqPzBv8wccbkGas4dhJK5ka9clvd2brWndx7Hg0S8mEIi98CyAsTGEHhWsgQGieZQUSMr8DDXY3mRV+lmey4dysJRvgsLloUp2iT5rrgdKo3Cb1j/m7+cEPwNfSGkVzL9s1fahS85TDYhYjPLlAGHHs= 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:34 +0000 From: Paul Burton To: netdev@vger.kernel.org Cc: "David S . Miller" , Andrew Lunn , paul.burton@mips.com Subject: [PATCH v7 05/11] net: pch_gbe: Move pch_gbe_watchdog lower in pch_gbe_main.c Date: Tue, 26 Jun 2018 17:06:06 -0700 Message-Id: <20180627000612.27263-6-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: fb300aa2-bad8-420e-c8db-08d5dbc1d827 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:rACsh21PxRcD4zmuxHlBg20gvI0aH9msO3aVeSVrrpiw4HQJznI9wL7pybaHkYaeRhKyCHrk4IInpZ9zq0MO7vKr6XA1T6+UlqGbI9yxiAB/W+6vfyx3pKlFNZDGDQ922vJH2XE8PAsRHRKYFvI4KSMDzKYLlImLdvBWvlFgL52oN67F6rIa+a/ZeQR+Y0W+yPK3290//IeMsd6U87pQO7MKFlqsyAcXGKOE0PZZTMLmy/K+oBPrrqj5D/ivOua5; 25:xWgw2W9b9t6bCgZdw4MuvldyphyLzMF/c8sSgqbkq+2CHxzko4gmaY/Qb+DHPjaGmHWzBbNQIy7fOLVHtYDzqUnE9/dMwIVd6opu4dp1qMKRWOtKBAymLI1wnx7WfOTUthPV/ZBqAUyAbI59XCW58j06oQJu01c2hwJJ4wEkZNcEz+aZCeum/wzFPNFuypROKE8DpYWdSspq64uLTu1QCnZgUKx1g1JWZrW5/GC3SGHlkLenkO+O9iGGbH39v7hzux0Rl5ZvaZ88yziI3Esl+DQ92dMMmOSGMYRL/ovMBaaCJ/wLPoGMgzfxlupCey2lTICHpHmKeaRXNMLOH+M89w==; 31:Hea1o9XM3nXyQsICjEjN0QKT2boDsIIg7VQLmSdK5lC3bC8XjUY0tiRCFqjvUCyj0lgznbL7vcihX4o5QBHC0L+9epQM6aRiIweF7Z1EjxGjbLi2kWs5XiSdCT5tAjabNX72mzsiFCH5US1O+cCN0hismKRc0/F1PvCySRXY3P9KnYrjgd0O4EYfQImh4RCJbU9AzPJlDLUBuqNzeEBZwQ6MTgMPHKfyMBDqiVjmRnU= X-MS-TrafficTypeDiagnostic: DM6PR08MB4940: X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 20:PHp3j+4C9Ju4ws+9Mv2ZWAuizAeJIpPi/ryHp0uEi32qkf4JaP2Xu2A1/KT7FCYlppQXpxlZuXLTUhzFRsrOGjx2FDRBYaBcu1tmraUTuXkrT9pnu3k5SNM4cPTGsQFn02RAIF/CN6DLPnVqgatAASDluLfUbkyz/LbcJmEKp+fzWg3FydFjn7ko7BmUuQdNsgwYR4PuRt3d+KJS9PUxOFGCa51r8FgUHcZOE8HCQbfNn8J/cFQ+I//7bCjEMbhb; 4:2OG+LvMFjdH3N4dA2JZ25yxtqq0teVeW3ybcxW2G3VMcFFicIUKtlKwJozlvBlDsjqGHD4jOFsROVsxRKscy1dtyw+0fu4aDE3HB0cP2vo4dm8DmHe/bUGaFLVLyoBS6paYxjPGc2q8NKqhm67qjOFdYPqW1UyJWQqZC9Ecwq5Z+AyN7X9rlmnKQqETwpXFXJwTxGss2NikDIvyYgpluy2OuXg5yb8KV4LtsxF8nu9hCJTVzvrN65oEzp7egdrWMhSwMeC7pNhfstl9P6LgV9xYlTs35bHre8+N2XWpsI3ctNTCL0JNCUyIfOnQf3atY 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:Tu1xM0kqMAoLEaqBkg98hJN7dFu0Ma7XlAV7/n5ytGu+weKGRjKlT91mx15456K1rVVEPDTh7OJcXF+95rIKvJ/ueGV8jz96b3sDYAUid6vzgP1HU4UkFdMeWchzCyKdqp1t/osouS7jnpi+aW2+grxn4uqQ5Q8X2ivS+8VOdusCVH1YLNBwG76+8/OKeadpw36poY9NK6dBSNjV0tPLF44PPWwzyjfWTt2q8DtC9knmK15x8H5q9sx00408sDfBAaqOtSOcSg2nQf6Z3gJ8uhwfuYRYYCTvAg3vWTyUUoAtXBT3+vtJUrpxsIFpdvw2+rdr7klUdC7HbGH2B2FNAUS1HkM2/ufFz2WA21l+P4V1oo6jcvXoPlEARL/yMgWQ5rUma1c2qc/AXBlq2wzNaWwFVeA6zU+MjOGUTOz/pZ0GveAv7Rg6ZPVSUWZzEktvVtbbPYW3soy1IeLlo9yL+UGbyB/yTwvyBx5zmdYzHr8ladx+HQZXAV/8G1EwYeO2vWFTkLKdnt5zVI3H/FiHDnF40nLd+/ZTWQXEJhpOe8CibbVjLqOUsb81xj+3frNuvrQC9PYHXijmJx9pYbA7NAhAG8vddwX4mMmPpBT6A2hyGoWwQ6YENOLypCSfL7KLIPzzUAKGYnWhiDFoekLbFz1AcBdfbqkcdZ4zny0tsMf5y6yalwxOSsyRufXD5Xhe8+hsqdOd92o4yWCb3srX3q6QyL4dODX+FsSDwcp7O8LlrY3dRBueQ4mCUfbxrwZuUkXXN9SxFB1B9/BhcLzjaAZ1NMaJKiXItRtMh2gLIGawAZUWumaueEg6xk5YRQvhNDSJNza3D5XMYMRmqwncQNcWV+U+lnPbVJ8W/BHB0HNeUg6R3L+9hQvhtobdrBjB3EXI++0HBsq6Qy0rX4Q2wh2OX/cSs8YpfuPe6T543DPbF8WLbo3zKUNX90JsjqOSU522stgOmsnPFm/SFiqkEVj2Yrq+xGM7golmytTBHYWQF651qknf33I5S/F3IgIY7LaPuuloJL78mzetdmvlGd45yuxhHoZvB6enQJFyopNHT2IiWa6VS9KZL0x+vVx+FAikywPXzWlhIHrQWZwMzYRoJMCtB7QJfk+GFYpqzgNWlwLFL/+wYBt3nforOPWmMW8+xlaX8B8Z0XG4XbX1vVoPhLKPEEP2VkQ5GNDRb3cKV+bor9LAILk8oHXbPbqS4+R+B8whf8UwwGUmzatkJ1BZ6gil3Ypc9s5hSMoruX+tn2gpr13WThv2oQaeQfa9zJNixqt7vCEPtVduF03HYEv1b9KM1Crig1GbFU5B0rwP0lSKc7Tyof+SeBA4ZOTr6QKDzasm6/GVhX15xrmAkQ== X-Microsoft-Antispam-Message-Info: tg+0Dg1bVEYMq3XRJtOokJ3p5dOmFC7BlwirkAlpECWCyku82aXv6SE+1BBZko80bIoXYfG0OvkALUUOGI2ptXDoABD0ZI/PT8z6MCg9HAL7/tiYcZSm1ObBGx5EcnNBEgje4UtWpIs2xNqpfjPySW7caF1fe9Zp0sezm6ThN7JkXPglmEo4d5LmtfkMYwSCqCuu1dYZifR+aA9e8767mviQXPFKELNbTQr3CIkSQUoNZnvoYhbyCdnTMvQBFLHLwepq8OKYL3m0aR5EvIK3gPfEXuKeF0nKC2hKe3DagTOLCg4xq7DxczgK/SGDCihUfV7Z22MKn7YwvRMmInYVtcGz53qkcUVsmF7+f6AobxU= X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 6:vfUDH5zi5hOFtO+4UftbxJQKEXD9ZL+qTP20oHbxU2s8x+9fEAWFdjB26WLsAv7n3nlb5BR4RKEciCwC9ccA3YJm0iJQTMswI78h/Q1LaW7THbw/mjZMZmbOf5WBk1BsCKueNWWJiZcI4MIG3LY0z0f2/edrK5HQPOpOfVpuv7vgjPZZWLl5XvbrjT3QZmW8OFSQxMjSVAEu9YcQw3oVfW7TejJA84JZoxOC/TjPr6Q/a+WY6G69+kDryxtSHVWNDg8WxuarNssKDOL1Hjz/yoNv818liHoxQuqNSNhMEBrjp0BqGnzsYdgt1WVSfHguID0xN/KSLdrL2zlXxg12R/sEGRgAHKRXeRr71iYeLJagggbVFd4keDNP4+X9wmrmHGgqJ9GVIDZ+QakpoU78YYUF68Qoi0gJL6FN6TxvvzuALJVC7Juqfo+wbfmcgAtFWTklUI0ZUiDEg+lWaWZLdA==; 5:H3LMUVwiBdItgxHYUGYyIyE2Bc2SY2GtTkT2ajgEp84/OOzZi0OQauExcQTxLjrAQp2ruy7GtDAgrGh5IyY3DZhYbzILkGvkTwd/VnDiAD/0ogmby8nprFZASS66N8cPDxAcD/2AAT6+u5xV1lvhViuEmI9Nf0XHoWUJmbKEiHI=; 24:tu84uVtAagI6Xn4drpqgq0+m9bo72mYa1QmaHNYgr8Hanu5yy9HBBM+qRsNxP6EXxVUqi/NBBQ2IT8YCt8Z/qFltAdOsVfIMLFJtin1hzN8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 7:HsFgZRo+cMgmOBq4ITmpXeONNQXBcNxFMLNTJn4qE3E5KWYls19nX9NdPPVuY7UMsZ46Vk2DqoVgKBS146Tw2wBC5V86c7NzJV4dD9VBwdBCXCSWYv1x37ibYC8y8TKBcnwnqcGnExeO2LcjtkVTvUZh/jAUfnfwGbcKL2feyfQgIDDZ6HufeqZFrrw7V9f6DGGc5c1Efk6FLhQYCLvjVigMjHRs3tqYBsqreyERFpsJ0FabFlIDUVo5GVDiHIQS X-OriginatorOrg: mips.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 00:06:34.0657 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fb300aa2-bad8-420e-c8db-08d5dbc1d827 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 This patch moves the pch_gbe_watchdog() function lower in pch_gbe_main.c in order to allow use of other functions in the next patch, without requiring lots of forward declarations. Doing this as a separate patch makes it clearer what actually changed in the next patch. The function is unmodified except for whitespace changes to satisfy checkpatch. Signed-off-by: Paul Burton Cc: Andrew Lunn Cc: David S. Miller Cc: netdev@vger.kernel.org Reviewed-by: Andrew Lunn --- Changes in v7: New patch .../ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 103 +++++++++--------- 1 file changed, 52 insertions(+), 51 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 ee38bba8b9ce..eb290c1edce0 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 @@ -1046,57 +1046,6 @@ static void pch_gbe_set_mode(struct pch_gbe_adapter *adapter, u16 speed, iowrite32(mode, &hw->reg->MODE); } -/** - * pch_gbe_watchdog - Watchdog process - * @data: Board private structure - */ -static void pch_gbe_watchdog(struct timer_list *t) -{ - struct pch_gbe_adapter *adapter = from_timer(adapter, t, - watchdog_timer); - struct net_device *netdev = adapter->netdev; - struct pch_gbe_hw *hw = &adapter->hw; - - netdev_dbg(netdev, "right now = %ld\n", jiffies); - - pch_gbe_update_stats(adapter); - if ((mii_link_ok(&adapter->mii)) && (!netif_carrier_ok(netdev))) { - struct ethtool_cmd cmd = { .cmd = ETHTOOL_GSET }; - netdev->tx_queue_len = adapter->tx_queue_len; - /* mii library handles link maintenance tasks */ - if (mii_ethtool_gset(&adapter->mii, &cmd)) { - netdev_err(netdev, "ethtool get setting Error\n"); - mod_timer(&adapter->watchdog_timer, - round_jiffies(jiffies + - PCH_GBE_WATCHDOG_PERIOD)); - return; - } - hw->mac.link_speed = ethtool_cmd_speed(&cmd); - hw->mac.link_duplex = cmd.duplex; - /* Set the RGMII control. */ - pch_gbe_set_rgmii_ctrl(adapter, hw->mac.link_speed, - hw->mac.link_duplex); - /* Set the communication mode */ - pch_gbe_set_mode(adapter, hw->mac.link_speed, - hw->mac.link_duplex); - netdev_dbg(netdev, - "Link is Up %d Mbps %s-Duplex\n", - hw->mac.link_speed, - cmd.duplex == DUPLEX_FULL ? "Full" : "Half"); - netif_carrier_on(netdev); - netif_wake_queue(netdev); - } else if ((!mii_link_ok(&adapter->mii)) && - (netif_carrier_ok(netdev))) { - netdev_dbg(netdev, "NIC Link is Down\n"); - hw->mac.link_speed = SPEED_10; - hw->mac.link_duplex = DUPLEX_HALF; - netif_carrier_off(netdev); - netif_stop_queue(netdev); - } - mod_timer(&adapter->watchdog_timer, - round_jiffies(jiffies + PCH_GBE_WATCHDOG_PERIOD)); -} - /** * pch_gbe_tx_queue - Carry out queuing of the transmission data * @adapter: Board private structure @@ -1973,6 +1922,58 @@ void pch_gbe_down(struct pch_gbe_adapter *adapter) rx_ring->rx_buff_pool = NULL; } +/** + * pch_gbe_watchdog - Watchdog process + * @data: Board private structure + */ +static void pch_gbe_watchdog(struct timer_list *t) +{ + struct pch_gbe_adapter *adapter = from_timer(adapter, t, + watchdog_timer); + struct net_device *netdev = adapter->netdev; + struct pch_gbe_hw *hw = &adapter->hw; + + netdev_dbg(netdev, "right now = %ld\n", jiffies); + + pch_gbe_update_stats(adapter); + if ((mii_link_ok(&adapter->mii)) && (!netif_carrier_ok(netdev))) { + struct ethtool_cmd cmd = { .cmd = ETHTOOL_GSET }; + + netdev->tx_queue_len = adapter->tx_queue_len; + /* mii library handles link maintenance tasks */ + if (mii_ethtool_gset(&adapter->mii, &cmd)) { + netdev_err(netdev, "ethtool get setting Error\n"); + mod_timer(&adapter->watchdog_timer, + round_jiffies(jiffies + + PCH_GBE_WATCHDOG_PERIOD)); + return; + } + hw->mac.link_speed = ethtool_cmd_speed(&cmd); + hw->mac.link_duplex = cmd.duplex; + /* Set the RGMII control. */ + pch_gbe_set_rgmii_ctrl(adapter, hw->mac.link_speed, + hw->mac.link_duplex); + /* Set the communication mode */ + pch_gbe_set_mode(adapter, hw->mac.link_speed, + hw->mac.link_duplex); + netdev_dbg(netdev, + "Link is Up %d Mbps %s-Duplex\n", + hw->mac.link_speed, + cmd.duplex == DUPLEX_FULL ? "Full" : "Half"); + netif_carrier_on(netdev); + netif_wake_queue(netdev); + } else if ((!mii_link_ok(&adapter->mii)) && + (netif_carrier_ok(netdev))) { + netdev_dbg(netdev, "NIC Link is Down\n"); + hw->mac.link_speed = SPEED_10; + hw->mac.link_duplex = DUPLEX_HALF; + netif_carrier_off(netdev); + netif_stop_queue(netdev); + } + mod_timer(&adapter->watchdog_timer, + round_jiffies(jiffies + PCH_GBE_WATCHDOG_PERIOD)); +} + /** * pch_gbe_sw_init - Initialize general software structures (struct pch_gbe_adapter) * @adapter: Board private structure to initialize From patchwork Wed Jun 27 00:06:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Burton X-Patchwork-Id: 935184 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="C9zerVpv"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41Fjrz3VbRz9s0n for ; Wed, 27 Jun 2018 10:07:15 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964801AbeF0AHM (ORCPT ); Tue, 26 Jun 2018 20:07:12 -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 S1752964AbeF0AGk (ORCPT ); Tue, 26 Jun 2018 20:06:40 -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=NGkfg4kx96i0O2B1iM1SEuj6jwZYM4HClAQo0rqGjJM=; b=C9zerVpvEW2bMMqAXSc2oyN8tFC0XDCjKE5Z94Rwfrhy9DYU2U6KCwdqoOQIz4AOedOy6qXc1y/5BB9fXMQhQR69nfTAR3WaF1f9wSqxs6Op42U2yZj8jsjUBJfe1wGrFXcg/AtYH6me7vS1LWp09345bg6DorjNU4H3WzY6+NE= 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:34 +0000 From: Paul Burton To: netdev@vger.kernel.org Cc: "David S . Miller" , Andrew Lunn , paul.burton@mips.com Subject: [PATCH v7 06/11] net: pch_gbe: Only enable MAC when PHY link is active Date: Tue, 26 Jun 2018 17:06:07 -0700 Message-Id: <20180627000612.27263-7-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: 91cb856b-a9e6-42b5-6e61-08d5dbc1d89e 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:KNRvs1O4FvqTwcNEnUt9wtzEKX4yUPrPVNPzfxuCZPTtI51thd5wDhobkHC85p0Imkiw05SeUGK00i/IOSqXywIpJvpk21kOOPi/ykIl/dcsj7rWcXXwihUF16SSeTCG/ujS94s+MoNDfuOTiWYBJ3+RIyCbreRIySHZezAYwtS1xFOvcKM05X/EmDvaccrJVs96gDZ/r0B9zfRN5SxzMhBvNNF29fiQ2p78ZuSrcrIUvMqUqztp7eObL8j8Cauc; 25:bB2NP5+w7Yer2Yrk4ofO8VNO+K9qQoJZhIJXLFsfatKuKiJ3buZ2iBT63dlV8GDiAgbOs2wVOnvk50HIagtzPdROEL6fIbL22TYLY1cCOJXqH/HcTAIfsCy7Lhj4qwhmPEoq+Axn8R0ftfV0qELw60aEh/PDwTMe+5nK7IlLSFrEzm6dEF14m8W08vJsPNYtx7Ns9+m2vpKl7jBaFeaX2cPy7PzeLTRrJAtuujmYmUe2rLmjM7b60ufuNXjCkZ4T7HDV4lU7ZXvDgHeiuihdKo+I53W00A57nHcv67QzfBDqwy4fX7BCB+m74/Rd5uXIlwNrV9/ZjyjiWTtCagn9zg==; 31:b7H1X7i2xV7Vjt0OOTX0LnbQshrBJmx9fBvnTAi67TAtMOOF6EGluAzgscURqW4O84PnXPamm6wgjmLs4l5prwAurD207MSe9r/DOXGyz3UVC28ky+RGXrDImO/ngoMFOSSN2bq6++AKkyPlEvQtf6im9b9QQ4E3g0jZaAioEgmi3nISmpuVyw6EbL4SwpDAJHi4+zrq+O1sRZBtxneGxq8+19ttIj0CCmtTnnRKF2s= X-MS-TrafficTypeDiagnostic: DM6PR08MB4940: X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 20:iMRDpspZioPwEcMFTTeb3anGzjj3mUrCAH2Vlxotqcff+gzCj03KamFOxU/02qHYOqwKjcl8nM7sJ7kPED5opMkodK+hb78n8joSxSKmy0IF/RHlbPd7ULEyWKVsMJtYEX8Q6tPDWHKgiudurru11ag1rnStfoL/LxtJ+Mn/zzfLx6E7Uffjq3U5SXdNx8criYQlD7ty69+xTcybLvK2eIlm780n1BGK0N8erPUODJ1QaCGnMA23qm17QfDdSHb5; 4:5WqKfCc3qhXONCgK08YDdXlLxmNQULSLGqW3/9Gjt/4XPyKxPGEwvH+HFMqxvV8Ztxthpkrd6NzClhMT2BnPczgjGk38vDK3rUqm4kWBPfueGwKqPExPajwuG/3Dk6kmY27JAK3p11N41ywvTyG4dRcHkjqBn3ZyJQlSAxYd1n8Wq51MwLW4mIAiUpwSl0AoWluB8Xzi70IHT4GgUNVHPq/AjcDCNGTlouvrasY0DzyPNyH5za5JND7MSuaIUXWuP6pNKfmZnXbJzbjYrRdCtjBMb1qlg40gXPrJlfnSYEkFCJiJ5NIu4OCVXG2oPNZA 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:Omju9W9Uf1DA3yXW+6RsaBMUr3nOMtZh59M9jtUc2AzqkPuELsHbRZ+VLs9P8Z23Nxj6q7rC/xhEL85sgjToMlWlARtK4HeOzAPn5nLN22he/ZYJZoJq5mYmMszG79RSRI9BMZRyTA9hlLrriUnOp/dtsFggmUAchRKvlrxrYpqfMT9ZLziG8MnQFk8XgKUD0liTUiEoTmblTfJHXZxnspVbmQP+V08IbsQsJARU4vEw6c3F5oFqlYi23NGsm7YQS8p2bCh/tjZDBzWabjgFFVv5dQmEf+iDffSTHiFhvNzM/tndyetIt1l1k2NedEPs81hFiUbSI23l/m/LD2oqdsT6esXrEK33wLIK2lQ60TMTIOc2AaQt1Z9a53Z8dmCb0yyuEXn2BV8xWZIfrOgMt+0rZOkTEAor5dWQO3n2lDb1CGUYb+w1bvJ3mwPt0a1RBAeVeWFk957CbRnDvdIN9n0W0trd0+4x/fGmE+GOtl1rUBxwYFpWykofl4eu9YYo0PPZhjrXBrMNoWypathFK0isRaCJS6hq72gttPWyf5B6SKooCP+YPbculRPBaRaYsMpPZM7rAzp9wG228CC6avz4lC8H72tjt8fZqeLihapYk9mEjJ0hTlrIt/KyrMA+iAErFYMqMFTYZVyzwvzxC2MoUJTdaa977t3ArpA6HVxf+kVeyr1SejXRfGThnQWIpolSyx95cq+bDto3T0I4054APXz9CuDpVlGPDcweSytHnNffKqgvYZq7ZfG3TYzjivZX/NRpQmKjpu7u77a1VqW23znrByfOFCmhQ6SiGNiVhb3WAHyvrrbyxw8JWw1hiztTHr6NV2c8YnbeaX/qdlZmySSjaUpaEBR0RwW6SjMZ5sleO6OXgeAVGseAOku5lHsZON08P+lRtShOMHid6fW1ooVticPEM7nSWei1nbjnqqv27GWZd8hL/vLAU6sN/p6xia9Zz2DrOFPaE2MMHjqbamkeuPIavvMfn0mAZgzSDQbip3+Dxpl8D2o+kje3Q47szF+gT/Q3GjpFR5epCuNTfZFEbwp9IwPKydFzvDhjxRBk+4wdFawZBBFyNJVvy2KaQfzclrNB5tT469gxGujAri1enzh+tFgnVendO2mPxGtgHSCJCEKfQb/gGZrQVJK2Fuczaa4ETKFubgsDTAt2MUotnYLRt9ozIMyiFkErcIblF61BWv3Jhr8HiWqDtIMIoBGFO1W8RhYKtqakNapmiOCeovLkZVVmyW38sIvAkkwsA+LppQF2t3zlbMAkYlXmteSMl8890toUlPWJW44WIyOuhwZev67K70atkfUGGcZamkxf77OeGjGVw/eywMiqmojs/mrfVT+ue63Jdg== X-Microsoft-Antispam-Message-Info: r1oLes1wpzTlmXEVWUH7FKN7Lg3YUx4cixEaFzlX5nxl5cz+FlqXX+QA3cov0AlY6338EqLTrS/KdrQ9izR5DcVQeBruegnD8Lt2o3cbhWjmNDtGG4VsR3VxN/7m/MAYquwMZHGi2/SCf50/asFzYfGePjMPExD6YF1roon9wIEkVPoLqvC7vQQtm6bHszhY1nat/fKkg6FO/XQYGOgth+TNRwgk4SRjjjdu+XdR/qPOV4YwOyXt/6sfNkzV2v0oURM7tteMRJJZ9asvT5j8vbPdEnBkjYX8/vYKlenGuxE2gEyvaL8ZZ6rXLAcSwXdQeYIMwhi+R9/e9qMjI30q12CYqGRqmYm1JBHHfo281sQ= X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 6:jHxY4sUiPBsFP7+/MOvw5NdcOwy/cvAxsam6fJTKgSBOvqTnAa9Sa67jv25Z4LidZ/eI1+zU5xsXv2KXTn0SFHiQPEgZtepmgEI/PbNGI7kk7sEsxSqBPNaUKu72OeRZdtuUT5r3iFBuB7NtcTcVHYcNrNg/6kLlqJlWKSUWs7hJtY6y7681QZk/Qy/Sjyu+u5i9Y8Szp66CfCcf+Z4i5I9Ka5HBYbIgP2QnPh/eOT8vgmFkcYCB9NpZd38oUKcjwmejytkxZywzo/3F1/1+NbvaOys8mVvsTIRKYh42kMliuw6LTfF6vT7A8gpL2bb0bY450Tsswrj4UREQxJ35exPGcXEkNMTLA31Mpgs0BPxBx6Ua4HTBSaf49IBG+vD0kGvgyNzzxZWZUAf4Yi4jD/ij27yK/naCx8r3JU437BFebhovBrW0SmPOuQUa2bwb/VnvxEx1stfn/tD2G0k9eA==; 5:eiBZB9usgIUbYo7vWCHo0kkIx9wtllIiHDxrQURhrTJh1ufC3M0GzThLbKkrGZdNs9exXOFHVTxsuG/04wcZeNzM8AEjEP/8GuNQPAJE1ECTT+fPrwIl407aMwOf+0Rb6Z+bNaddH0o3yOkmjqSJkxES/0tAtpm/V+mo6O/myRA=; 24:a8fQn3VsoPZqswV41iotRUJfDHxfPrYAM2jXkZhGwVrM1gdQgzcdUwA4yNJHdo+La9HjuBe3f+RZ/gJpEWmVmQa/9FEOlXN5wOYYriWzblI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 7:g7U3ObqIie2mQEU6gWee37MAl6MGB4zdOu2sE5pBQyGlss0de5eilO5xp5WOUVKleZJGzwhzgQM7NW5U1VLxdJmAtm5iKA+cHzzwtcjxhZf0nzcwODJ3PegFUqO6isWKPWll+CDOi7GLckiNqNlNPX3sAnapG5MOYhLRhIF389tmfKccbAvn/5FsLe1J6XLIBjwwtOoz40LTiV/9Ca9s3436eRfZCtomAh6lZQ2QFuwlQRb2eLJ47jDXbZYJCO7j X-OriginatorOrg: mips.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 00:06:34.8653 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 91cb856b-a9e6-42b5-6e61-08d5dbc1d89e 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 When using a PHY connected via RGMII, as the pch_gbe driver presumes is the case, the RX clock is provided by the PHY to the MAC. Various PHYs, including both the AR8031 used by the Minnowboard & the RTL8211E used by the MIPS Boston development board, will stop generating the RX clock when the ethernet link is down (eg. the ethernet cable is unplugged). Various pieces of functionality in the EG20T MAC, ranging from basics like completing a MAC reset to programming MAC addresses, rely upon the RX clock being provided. When the clock is not provided these pieces of functionality simply never complete, and the busy bits that indicate they're in progress remain set indefinitely. The pch_gbe driver currently requires that the RX clock is always provided, and attempts to enforce this by disabling the hibernation feature of the AR8031 PHY to keep it generating the RX clock. This patch moves us away from this model by only configuring the MAC when the PHY indicates that the ethernet link is up. When the link is up we should be able to safely expect that the RX clock is being provided, and therefore safely reset & configure the 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 | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 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 eb290c1edce0..721ce29b6467 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 @@ -1837,7 +1837,6 @@ static int pch_gbe_request_irq(struct pch_gbe_adapter *adapter) int pch_gbe_up(struct pch_gbe_adapter *adapter) { struct net_device *netdev = adapter->netdev; - struct pch_gbe_tx_ring *tx_ring = adapter->tx_ring; struct pch_gbe_rx_ring *rx_ring = adapter->rx_ring; int err = -EINVAL; @@ -1847,14 +1846,6 @@ int pch_gbe_up(struct pch_gbe_adapter *adapter) goto out; } - /* hardware has been reset, we need to reload some things */ - pch_gbe_set_multi(netdev); - - pch_gbe_setup_tctl(adapter); - pch_gbe_configure_tx(adapter); - pch_gbe_setup_rctl(adapter); - pch_gbe_configure_rx(adapter); - err = pch_gbe_request_irq(adapter); if (err) { netdev_err(netdev, @@ -1867,18 +1858,9 @@ int pch_gbe_up(struct pch_gbe_adapter *adapter) "Error: can't bring device up - alloc rx buffers pool failed\n"); goto freeirq; } - pch_gbe_alloc_tx_buffers(adapter, tx_ring); - pch_gbe_alloc_rx_buffers(adapter, rx_ring, rx_ring->count); adapter->tx_queue_len = netdev->tx_queue_len; - pch_gbe_enable_dma_rx(&adapter->hw); - pch_gbe_enable_mac_rx(&adapter->hw); mod_timer(&adapter->watchdog_timer, jiffies); - - napi_enable(&adapter->napi); - pch_gbe_irq_enable(adapter); - netif_start_queue(adapter->netdev); - return 0; freeirq: @@ -1930,6 +1912,8 @@ static void pch_gbe_watchdog(struct timer_list *t) { struct pch_gbe_adapter *adapter = from_timer(adapter, t, watchdog_timer); + struct pch_gbe_rx_ring *rx_ring = adapter->rx_ring; + struct pch_gbe_tx_ring *tx_ring = adapter->tx_ring; struct net_device *netdev = adapter->netdev; struct pch_gbe_hw *hw = &adapter->hw; @@ -1950,12 +1934,32 @@ static void pch_gbe_watchdog(struct timer_list *t) } hw->mac.link_speed = ethtool_cmd_speed(&cmd); hw->mac.link_duplex = cmd.duplex; + + pch_gbe_reset(adapter); + /* Set the RGMII control. */ pch_gbe_set_rgmii_ctrl(adapter, hw->mac.link_speed, hw->mac.link_duplex); /* Set the communication mode */ pch_gbe_set_mode(adapter, hw->mac.link_speed, hw->mac.link_duplex); + + pch_gbe_set_multi(netdev); + pch_gbe_setup_tctl(adapter); + pch_gbe_configure_tx(adapter); + pch_gbe_setup_rctl(adapter); + pch_gbe_configure_rx(adapter); + + pch_gbe_alloc_tx_buffers(adapter, tx_ring); + pch_gbe_alloc_rx_buffers(adapter, rx_ring, rx_ring->count); + + pch_gbe_enable_dma_rx(&adapter->hw); + pch_gbe_enable_mac_rx(&adapter->hw); + + napi_enable(&adapter->napi); + pch_gbe_irq_enable(adapter); + netif_start_queue(adapter->netdev); + netdev_dbg(netdev, "Link is Up %d Mbps %s-Duplex\n", hw->mac.link_speed, @@ -2568,7 +2572,6 @@ static int pch_gbe_probe(struct pci_dev *pdev, (ETH_HLEN + ETH_FCS_LEN); pch_gbe_mac_load_mac_addr(&adapter->hw); - pch_gbe_mac_reset_hw(&adapter->hw); /* setup the private structure */ ret = pch_gbe_sw_init(adapter); @@ -2610,9 +2613,6 @@ static int pch_gbe_probe(struct pci_dev *pdev, adapter->wake_up_evt = PCH_GBE_WL_INIT_SETTING; dev_info(&pdev->dev, "MAC address : %pM\n", netdev->dev_addr); - /* reset the hardware with the new settings */ - pch_gbe_reset(adapter); - ret = register_netdev(netdev); if (ret) goto err_free_adapter; From patchwork Wed Jun 27 00:06:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Burton X-Patchwork-Id: 935179 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="p1iXeZZf"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41FjrS4XfXz9s0n for ; Wed, 27 Jun 2018 10:06:48 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964784AbeF0AGq (ORCPT ); Tue, 26 Jun 2018 20:06:46 -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 S964775AbeF0AGm (ORCPT ); Tue, 26 Jun 2018 20:06:42 -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=/0uJKKcF/7hAhj8J3YD2qV6Qc7qc8ffCIYCXDPXIu2o=; b=p1iXeZZfD2kvPI7Idb9+RFpx3Q9+h6X5JIAHOLTIH1ZP84sq3GMWhf92MjN6BFMAZog+l/pWDrHkkJY7qdM0NRERRSxNcqDif8bFPQtM8BdEbbiX3rz+Di7AZs6kmP1L3PVRGbWmYVIutrBB7Wijy0BwNR7WBJSwczlGvcwmXq8= 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:35 +0000 From: Paul Burton To: netdev@vger.kernel.org Cc: "David S . Miller" , Andrew Lunn , paul.burton@mips.com Subject: [PATCH v7 07/11] net: pch_gbe: Remove AR8031 PHY hibernation disable Date: Tue, 26 Jun 2018 17:06:08 -0700 Message-Id: <20180627000612.27263-8-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: 503cebcd-bca3-46e9-5527-08d5dbc1d926 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:q2atAcZu1wIOZ4lhwqO6q6XbgnoGw1fwaXwKdA/NSf03SyCsCz/1LQEAP2e9zmj7KMo9j9z/MY44TYj8UEclR0r8Aw0rRwl4SwEvh/aEHDUfn5msdcXxQxsIS2RxTsXIl33+PKBZNq4rQ1uHsswxzUjSfkkcxhs9LbaCmtEDTKMBq/ElNxIBq6UkIfgyysANc5Oc/wyNoSy6qcQWQv8WC75yzHEgZE+l1iKhT+3iiFSTi/KcrCa27fnTZ4jxpKgy; 25:gg26zgXTY9TQJS6pDnSmHJJYo897GBYJWTj45/EWwLOkahx2tCUtc6u2BCpkGO7054wlnB0qL7MKJvl1fhU5cu0mmv2BqKrHO+bXNhkKH8c0koIqYgQXVPSPyYidHNf8PkEWo2Yp2IHoKE0objh8IRHQjM2/zELnQCBg72FbTJiRrp2yWaT/uOM7W/EnYuDUNgFK8K7kc2a91SMIx/Yv/Q1UkKilrWBY3AV6LLV7hvhmQFr2CxAdz0eiVsa14fkNki39HFnZ/vQepThuEfWzNFjJ4kl1sgc2mlPVZfBrA3RdjlzMFDeN61mGE+JTgMTQAcxJIVlX5I3aov+6BE5z0g==; 31:DOl0swu7dRmlwwmrqZUZyBxAVC3vEQnopfXSRDUZBXIEuuORkitDTKexkd96d80Kk5p3tawRYCmnfJLv6HeQjhY2hmJML8YnbEJkV/lD3q6gxgPDCY7rIdULgJqYgVyWE7COxwv1H1TNThFmauqUbijGEbFdgSb5LhCoU4YMBB5glPovwiHVRIPN5xwq84wCZU9yoRadX6xpdZXy971xB8cSCIyoXTqFA4afpOpKcRY= X-MS-TrafficTypeDiagnostic: DM6PR08MB4940: X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 20:RajkaRZAwnAH/vWqGtDSsrRJHcoSILvsRolCZBh6gYJZUUI/2ucOPADPJ/VIptJArVF3Lup7CMHZSkqAFOWctXFHp3pzZDZpRJ2YTXuCDB61aPa5qKa2KSyo+FPbkjrRt/PhE2xMFPn5aHNd3RuQGB9tGTBnLNrPKlDqzTQl2yysmkQmajH2uVUgKsQIm+5svm5sJkipcagRj9ETixnx28Jx0jVbdlzkxJG+UH4R+aIy5pwv5URd8WnJLc759VKa; 4:SWi4HHjpUqHi9/T25qSj7Jih+7k8CNq18332GTFOziwfltP+mgaABx4zhp/qF1XKyzUUML5fZIECJVs9bcJhyUxvJU+kjzLyY3cNsA96QL0xpSH++c9rO9kfdHYum96WPi95OX2tWS0iV9kbdCpbnsSJwJDsWKfXtVzrNwb8xuYV5QZEG2ui20uV89hCOwSh80CrSHmRmpACbJ/0sTO9/0QYmt2NMinCtSL4u4A3/qI6WEhK1viaZznfmG9sKt50PRrb5EYROWLJIQGIMIJS7WRg3/Pwn7+hhU7nIi5bIVbvtUP9bg5QGZasNkiiYmw5 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)(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)(575784001)(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:9aXdOYhHLfD9tk0g+g7vb2H2u6Ts/LU4FMpJIVWRzgVs/PXQWVWVNp6m9i1F18bsJSMcMsj+nE7yjWASvVCm50/rIxGQHJS5ZLW9FAsM6qyyFTGWb7av1l7s0HwBYnKKR6Lja40+kZxmoSeLkU8x8ShGtTu/cFvpRP9D5w4mIrb++CG671rW+LnnqrPngoDIntHHT0+l1iumE2ueOXc2wwQH/nzfpceB82TeYNLKqe1SGkIWFS6TgInJ91Ece7w1UzxyDj+ICvM1J/tBFO5YO5mLATIhahPMrt3AKaJphCNM9LSa79R12n9wNcrox7gvT9dVg2EbgSfD564oIvC+/w0H37wcaENQYg6gGadZGalF7s2XW7Cn7G4DqNXF4iYKAA3brKZidZb0HJ+BcOUxKAh4/8VNYROe7hH4283XLvbFM5b3a18Zkd+vu9kEndOtUmd6K7yZyIuambZNx3EQnrOlSNtIjjJw3mR4n2BQpv1WBA+H2TLCfJA0/3Bx/WNdDWZqXEFoJmPeqOZfIPEmB+NSovQ6TqLs5eH6Rx7iuWQyErBu24djrt2l6PO4AaiNcFPkqt8VnTfhg62e+WgHSiXAn6jgiTwpIgYLaRDReQ/trXcNSSd/b1qRzVi/wSoxn837SqLDdBWtiRl1yJyGD8uvW+vcKYlFTQLA/vgqd6OGZKqv79GUEMCm8kexITm59H62EHLeFn81+vV7RmwmSLUUiHP0bWP7TC5hMznn1UCKtSU7h2/sZgNU8cA6P7758aMQ80+fcxclQCF49AYH2Mxz9E0JJEQ9DLd9Y8qNinE3zDcZLXicleQdVjQjYyZDywy7Gqz04UU/BGjbLMQdzliR5AsDCJPhz7tvHeLCe6cM8BSPpdI3tgQmrXmhs9Cxci6UfQkwbzvGCqGZ948VTWSBsOQLLVwdC9LsLXgwefiDDUbsO9SjmX6bJyU3BHzLWlfe8+yaOC1jKT4vqM5/QG363JvcKTz3E3nq7RHlRRq8fZlr8Su/9jG/BkXoWoPK5kNNrMMpPFyVzDLVvxNAcTIdqpnnvxRmTi1MKUpUUrRjs+GaG26O0ppr6vCafDxGw8zbvnkuF6rzeylv2rOWSfvK0UTTlArO369ebYFiJBpqtmqIQoGf8WMF8HUlzGsuTza4t2sGEyxmM6kVNjeBO1UYLgPsuMf42SNlnqKJKOOYYlKCHArtJWms/5+/x8IuZYoSbg1ybC0hjw07ODnU/Ws/8VCxZob3zDJpEeSMQp3HBZfWZxmdLlloXRER/6elBHs8/DjNT+J+MvNnQU4E2JFMo8nNR/F0akm7KTTLWkpUaL7TWzJRy4tI4lIbOrf/FUaCcBRumazXTPPcD8ao3w== X-Microsoft-Antispam-Message-Info: 3VE6S6+aPTbRh4GmkJk6YkC0e56dSJ1jeGGScUW92CKAl1hlp7wZ/G0jNvOpFd7jh0TwBvvq7Te75ffrImm+sioOxNxpXgmKV2cakvez3PzGlDI09S5IMtVpBlpGv3qzjcARm+W2EiiMZaR2OvkSIo6QKH0iIVG5erZ6ZPFgGdevKL1FxCNLc9drEBqLPsiJuzQMS92m/TaRCKFGeQt/3B2WP6ax2FsH3cnyUncMCJpSAIEcUIbDX2mVJO1kPxi5m+QJz7KLjrbl+FbthGPIcsudzHN4jVJ0ryXErEx5OIj5oNiCNK0ccu9O68xtbiVzeagbSLqbjlEksTPON0M0lUD84a3pQxX9D+rKsv1CyfQ= X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 6:h1KSLtbb8cejW8U/3yzf0bYE5Ax25dXMjvgvk2QP+phK7RxrTBICcqjRjvyWri6pm5dgsg/M4r5nJnYEuPFGDouyGwOq9in9hXKNrFEmBdqcp/WrM2zg1nM/b2Uc0fUuiB1TS80KmrPEP1D/a/LUwBludRlgizBzIxT35a9i9VE3wwkXUI6jUg4VEgIq4sC0HabaiNdC6OYDpnyaiNQ1W3Tod5jZuHOAKCXOCp0zjH6aPohEtJGVLBxDk0/K5BYcDxaRiQZPt2YtMZ1ftqWdTNZy/Jbn0QZzItZcG1flx5XjJVewIQ9uLtpYrcyDHXzcZmGS2qm5dVxkbpbrX0q0yPZLmyDLbBai9sSoSd13OCG2rIdl5yQd47yFemVhLhZIv4p7cLyLFjHEIc6jKtdv/YF30MdJv677VwbHKfz50cTiGFQucZ6i0tpwZDAKz/3Rs3aTM/V+9jlMse/gdmyztw==; 5:EszI4aY9Kc2JhcZ0dcCeEckAb51v70YZ9gQZQ219c+HLfemqMFDgm6TOf3gb8+HJJYuTbIwZKutlWlQFWxXdmUgucRnjb7U90zc3zfFVv+glIpyWQQq9JaPXa+2LnfgBVVQb/+4cWJmd5D6S8xtKaBbcLvmsw92lVUVR7Vva/U0=; 24:0XIPd7VAezNhL/PRx/iUSUN3KVZuBu+lnT88vAEmqBCqCV42cPdfl0gnKo4l8n7h8i1mme0FeziPAP5+adkFT+ogzg3AMy62INHZ1P+gx6w= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 7:3v9iw5qGd6cjRN+qvQ7clKLb3QGJSX48p/v7C1JTpQfABe2Y95RAufUnlfgvrsgRlXPSnksVBz8O6W0VBuRM9NUhESG+AvSC9eq6tWacKrdgkJqFcpYlKTUiFOjx8ULzKAHLoXMbuaiT/2r/aFms8DI/kwImXAG9qcNWYBU75bTmRm21dLhEFFTk7bUJ8dpcaKvZT9nq3xLxA+CIGeB3+f4sydXcbSQWuMLHV2m6JfVx9f4WlXtaPzr6ghIw3jvs X-OriginatorOrg: mips.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 00:06:35.7569 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 503cebcd-bca3-46e9-5527-08d5dbc1d926 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 We should now be able to cope with the PHY entering hibernation, ie. ceasing to provide the RX clock, whilst the ethernet link is down. Remove the code responsible for disabling the AR8031 PHY's hibernation feature, allowing the PHY to enter its low power hibernation state. Signed-off-by: Paul Burton Cc: Andrew Lunn Cc: David S. Miller Cc: netdev@vger.kernel.org Reviewed-by: Andrew Lunn --- Changes in v7: New patch .../net/ethernet/oki-semi/pch_gbe/pch_gbe.h | 2 - .../ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 5 --- .../ethernet/oki-semi/pch_gbe/pch_gbe_phy.c | 42 ------------------- .../ethernet/oki-semi/pch_gbe/pch_gbe_phy.h | 1 - 4 files changed, 50 deletions(-) diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h index 1bb0ea4f5503..f8acd8031951 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h @@ -542,13 +542,11 @@ struct pch_gbe_hw_stats { /** * struct pch_gbe_privdata - PCI Device ID driver data * @phy_tx_clk_delay: Bool, configure the PHY TX delay in software - * @phy_disable_hibernate: Bool, disable PHY hibernation * @platform_init: Platform initialization callback, called from * probe, prior to PHY initialization. */ struct pch_gbe_privdata { bool phy_tx_clk_delay; - bool phy_disable_hibernate; int (*platform_init)(struct pci_dev *pdev); }; 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 721ce29b6467..c9b064ac06a1 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 @@ -2622,10 +2622,6 @@ static int pch_gbe_probe(struct pci_dev *pdev, dev_dbg(&pdev->dev, "PCH Network Connection\n"); - /* Disable hibernation on certain platforms */ - if (adapter->pdata && adapter->pdata->phy_disable_hibernate) - pch_gbe_phy_disable_hibernate(&adapter->hw); - device_set_wakeup_enable(&pdev->dev, 1); return 0; @@ -2663,7 +2659,6 @@ static int pch_gbe_minnow_platform_init(struct pci_dev *pdev) static struct pch_gbe_privdata pch_gbe_minnow_privdata = { .phy_tx_clk_delay = true, - .phy_disable_hibernate = true, .platform_init = pch_gbe_minnow_platform_init, }; diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.c index 6b35b573beef..561e71880c29 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.c +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.c @@ -78,9 +78,7 @@ #define PHY_AR8031_DBG_OFF 0x1D #define PHY_AR8031_DBG_DAT 0x1E #define PHY_AR8031_SERDES 0x05 -#define PHY_AR8031_HIBERNATE 0x0B #define PHY_AR8031_SERDES_TX_CLK_DLY 0x0100 /* TX clock delay of 2.0ns */ -#define PHY_AR8031_PS_HIB_EN 0x8000 /* Hibernate enable */ /* Phy Id Register (word 2) */ #define PHY_REVISION_MASK 0x000F @@ -335,43 +333,3 @@ void pch_gbe_phy_init_setting(struct pch_gbe_hw *hw) if (adapter->pdata && adapter->pdata->phy_tx_clk_delay) pch_gbe_phy_tx_clk_delay(hw); } - -/** - * pch_gbe_phy_disable_hibernate - Disable the PHY low power state - * @hw: Pointer to the HW structure - * Returns - * 0: Successful. - * -EINVAL: Invalid argument. - */ -int pch_gbe_phy_disable_hibernate(struct pch_gbe_hw *hw) -{ - struct pch_gbe_adapter *adapter = pch_gbe_hw_to_adapter(hw); - u16 mii_reg; - int ret = 0; - - switch (hw->phy.id) { - case PHY_AR803X_ID: - netdev_dbg(adapter->netdev, - "Disabling hibernation for AR803X PHY\n"); - ret = pch_gbe_phy_write_reg_miic(hw, PHY_AR8031_DBG_OFF, - PHY_AR8031_HIBERNATE); - if (ret) - break; - - pch_gbe_phy_read_reg_miic(hw, PHY_AR8031_DBG_DAT, &mii_reg); - mii_reg &= ~PHY_AR8031_PS_HIB_EN; - ret = pch_gbe_phy_write_reg_miic(hw, PHY_AR8031_DBG_DAT, - mii_reg); - break; - default: - netdev_err(adapter->netdev, - "Unknown PHY (%x), could not disable hibernation\n", - hw->phy.id); - return -EINVAL; - } - - if (ret) - netdev_err(adapter->netdev, - "Could not disable PHY hibernation\n"); - return ret; -} diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.h b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.h index 23ac38711619..a80644b4fce8 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.h +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.h @@ -30,6 +30,5 @@ void pch_gbe_phy_power_up(struct pch_gbe_hw *hw); void pch_gbe_phy_power_down(struct pch_gbe_hw *hw); void pch_gbe_phy_set_rgmii(struct pch_gbe_hw *hw); void pch_gbe_phy_init_setting(struct pch_gbe_hw *hw); -int pch_gbe_phy_disable_hibernate(struct pch_gbe_hw *hw); #endif /* _PCH_GBE_PHY_H_ */ From patchwork Wed Jun 27 00:06:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Burton X-Patchwork-Id: 935183 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="iDq/w7xg"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41Fjrw3tcYz9s0n for ; Wed, 27 Jun 2018 10:07:12 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934415AbeF0AHK (ORCPT ); Tue, 26 Jun 2018 20:07:10 -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 S964781AbeF0AGp (ORCPT ); Tue, 26 Jun 2018 20:06:45 -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=bOKDwxE2C95+Sz8tAGzq1HrxoV/IKOebmbb3IAFKpfw=; b=iDq/w7xgRyFgamVxPEiqjjLiOAxCmNLIVBw5GnrkfutW/II7944GCCYdmgCj/mOpBWvUB3BAo31j87W97svW1Qov4Ytd2RKcwlzjf5rFtMhPf6CzeT0H0UBUTGf53NSYoRCtoQn3CSaLGYpc90kwDNsSnH7dTkn0GZsVZ27RU6s= 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:36 +0000 From: Paul Burton To: netdev@vger.kernel.org Cc: "David S . Miller" , Andrew Lunn , paul.burton@mips.com Subject: [PATCH v7 08/11] net: pch_gbe: Clean up resets Date: Tue, 26 Jun 2018 17:06:09 -0700 Message-Id: <20180627000612.27263-9-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: 0bc7f0f3-4d19-4eba-cd6b-08d5dbc1d995 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:6r9AsezcZD23lhZajY0vqcoxkHtzvjZSHq3AUDSs2ca+0+dZY9dWuaGjTZj8ItB1iHC886d609l3yd+VEj5I/f0+2cdfzJBl68Wa99EgxTi8+0iUkye8Fp09zVl0S+o6AIXXUif5IURgrQpBg3vf/bzwFX0oNh29QRoMb5IYZDOht2O3Cg4Ny7jyINt+ZdpylJcT9GrrSTqk2EXK0U27YKoRwFPHEPaXOoakKhpSNrULNVFviO/8keg87EsWZg1j; 25:ephcYxlPkHkLhCkcGFTPPvSNZfFNJdIgBZXScoso5j75AxBBvYSGQtZH3DAhj6nrExAiAZ+RGbSRoEzwl+gLJO5qf4oUaP6yXqRpLhqmH4LGBC9qRVKdViVL7gtdLhr3nG9pcHr3pQ1G6x01DoKeO/DwDtq+OX5YIfH0TUOpDASicobIC/k7sbO9+0GwcD+RWELcH8U5PGBX7DmBHdWFWpCkTw/35NeU9+lDHnn03iKPquPz7Oj0qAGzJ7w7U8ZGKGcVgoZ3qjanxOX/aw5nUWstCJeWdzf6pJ0WH+PvIA7TLFXyU44Ql+n1XXrar6yO7JYIs3ALs5G8gsjeyFL1Ag==; 31:3Ugg3zJR/qP9qX02aFFdu5qZBDIzC+xdbSZNCvEksXnSJKJ7HiEdHcXBp21FUrUG1B51+c3Y4r8/t585oAT+Gm1Dg+aj/FQYqZDJLVggyrRyamKQSa5wTrPDOV9sdt17ZanWnlMi78K8++ovtlpPibj+W39jEnwqfLCD+FlIBgDPtLrxt67wod+iMzekU0+HvQE3Jc7pJICnK7uuVL8Ert9ReSgZUNEPO8m1ta+33yc= X-MS-TrafficTypeDiagnostic: DM6PR08MB4940: X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 20:kbZXRTKzJMncwFZoGb0s3FiP5DcQ6VSj0abJRBctXFyhBLAJ8zCuKh+eCRFobhopHM7rgd0r8Rk/iJ57GAh4KglVXbKm4ughCxmG2N/LqcUJViLqsgmj3ExoiccYB8ewFTWDOHs4eFOQArLibyUjY2yy82oi7YZnwKIWATiyNE/cNUEwuKaDoLeufMm31BsmoAs0lYkv+HBTM9oIXYZsgVU+/ylm5Gro6nd2vGD3+w+lOu9javOYNpW63T1eHHjv; 4:2kvmSg+LoLBy945iuhHiQKTSsCQoE1vvf1VvyZv7RngrViq1GBEMN2kDp7eUjoSWj9Fn/TBwzrU/EXM4u1yPhp+SykoDilr8A+gZviWAcwm+fqpmRRgDG2SZZXZ3GOYEWWmeYwtrqJpziqDHKiBhjxONm/3QyRbI6GdL6r6fOE/tbxoZHasEWMr3yr5nIOl6HvUs5hsQjBtBzuZf1n4yAkMOMLXkv5J3i7PkOlGaPVOPbtoe0wqJ7fpmY9fDntG8jcJwzp3fa05s0ms8RENSr2NPJFZeEDZCL5H09/hEYI5k0MANwZW0RyYvF2+g1qEG 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)(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:H5ywTTBFgE9Jk7hqcXk5q0vgf9GAgPA9enSEOqRkocVMvEiWhaA4WDwDCWhq+hXp4YHhnxpnmZ/L5GLK37FR0e+FHIW2v+0PYtEdGwfIUIRi5d3GBNtDpPSIoDDlC/nlmOiEbHTCJ3vsfNFD3xqyCp1JPBedd5+dntsI2NfVHUQJZoaIi9RXdaFNONIBqh7bfZCQbScC6kFGIR7MDqiHiNS7Dadun1sKg8F3BEA88NK1/221euI39kRPj3j1JXy7OiiNwZkIMSaj5j/RaoQRjH/enqX94rdu3L1Y3+Jse7v+NRjNpCGuGVoisyUXMM62nLuEirahubvQnHPIiESEm0BZ8xi3ES8ODsHUFyku+q6HakXwL+orv9SdpuIt7/N8GsZcMahx+YIXVe1qo1mmuISeRixmVhBD6ct5BcQW7pIjM5dl07//2d9h5f+wzRO66EsbMHhAlD2IlzufklCLtHUahbnFq8W9vzuWnu5AJoTqj8WgkdDhnbv+U3/HGm1M+nL5Wjw3uNH1pWVJ9XTWMP7k1NV5C+k60IpvbnA7wBOID9cB/f9mAwuHBpYMZp0MDTwMJkpZqSUjraUZUAWCvo7B3u3E/N6RovjuivHatbFMuwN5sR5WhxgGgrnaIliZGURoMZQVdu6HhR/9ITlOQNnbXfDko7a/esE2n5rBLx5j6PRtE8jRon5NiyyrT2lUyQxE1rFpZWYCdpizfbq3647sZsOg/tJ9wGBiCGGRoSKUiHnVkaV+Uxg9+rGh32qlgejwGvGl/fYo7hALnEvzm5i11ogY48+REQuADuJXaqrti0Wdetta1k4fYhMk+UeC510P/P0LG0cr5ZjYMh+11mZt0YzqKMgimjlXW6qOPhztbvyDEFA/Ay3urabWogByXwXIlw8RFhrarZpLx8dLDaNqqtlNtZvcRxqNxkNfBUcuPNkyGk8tfxnuuYWMWeBSEOJbN0Lp3TCjk8Mx/e8Qqxos+4naUGBLKkmP/VcbrjQrFWaBHdQEK38AIqe93cwo17801Y7BXGFzbZS9VTVsSIS4BYEFQosFGD91irbfXbPoiqX3ERvslDJZxyJ5o8ZDz7gWX5CUsQL3/TKji3FrVyji1+ojlr1AdzSjvM5wOyr1kVbNH07jIZBEwLw0MpfFaizlR+gj6aba5LTYAtPcKCMuEBrK+3dM+urogZDUqOLZ4i+K83ZggjKnLyj7xyd3tKkZEir6XSbwVtmA+gSvGO+IK1//iQm1g94BgqNz68AkKVkGine6BY5jfgSwjA9wOmybOmZVsdLvjuYhYDnCwLtRyXBS2ugDj4o/3B5OsDdHTTcr/YCWZSUUVTTym+X/ X-Microsoft-Antispam-Message-Info: Ptq5wMCV2wjFdtOVdmRC8PV47L16eHfqDc9vsr0NXwVBQqmuw3EkJr9w1WXUNhafi3crJkNv2HiNJ390RP5MHW7Pa8dPTVQ8LMger/cvfmDG1YAiTSY4JzMnRvZGXMvXDjWgVcCGMyhqznHsxslBfPfXPhnLgq7Te9dtVnO94/pNEWIG62VLyZpzov3xKG6Nx0+vU+3FO+Kfb3woLl0yVPusrfQrAzTlYsZeS6XxapkgIzQa+cEiBIHeI/SRGkCvS+GvZ3FFmFm2TM0PRZiK6Krt1LUwxbcvdeSM+KrFO0gU4oSQzZ+yV1DMi+2Qce7Iub02VnuaJvw+w/9+T4vl1Kr8mxqV86l9YEyL6fG7HXo= X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 6:a3CpERetWoJ3MH0WFm0D6cNhKzHDSNMFpvRkXLWXA7KwTI3jOIPL81wsuu3Zp3Uv5P4l5/Zdf9vG69AHzzR3t7Fqz6jm7MwzqD/v4A6MqWMnqXfwJJ4/80qh/XOKvanPBT2apueYDutbmQEcOidBYpdvsvgPz/U1bTwXu/jxPIwZXTuQXN2T9DT6/JaDeuYd/ZilijxKyBVaqB3ZAlq98vjK+43++o43Y2n+MH2X5JEK169DZMr/QfWeY5Z07U7avhazBhCCsSqSiTVnti5BYRzycmXzsv+dh9mDeRIF4awwAdkR/6RPqJX1kuRb40TkAk57aPMeM7L3hlgjWyyNykRMM/VGPjN+sW+zS+zxm3wNZ8PwlghF56ZbUgka7exOzFebYzbZ5yy5Kl3EVrc8xVjsU4/0+h+JdKKXXKCyEBx5urR3ZbyDgOgFcIJpKyDeei3V26DemJJX/Qsqxn9Z+Q==; 5:ejk1MdAtc2b+H88zr+PGbHIyDTpl+G8nJsLTcZktcr0MSGwUkYeYaP3YDcG8n8vnuKnHMv5R0VdQ6XGO9p03vmMNgmw2ILtqE3kA/KSTk53jIvNNeBA7xOMVzp5DQEMKdsOuiAia17pM13p15697HEA6lzvArNPCY1vc4u/kcZ4=; 24:X8ymYJmRISjrgedRvsoiipLTN1iCfigsxdpuK2QWsRApg1FXsdDk73vfoRjYFBd2USIdZ1ynhjp80JpZJNGIdTofuvHUIjv83D8JtbnyPlE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 7:inkLTWayefcMBzOi48jE+Nz1F8utQ3mcYVM0OHzTT6M3nEe0Lu0ColSzhf9g6J/CmJLQWWKi42iDOoI3oZlViMoW7QRwgYx/pTSRo84ARtr53bdh34pfPD25xXbc5tyn0C5WRqh01aF23RtON2Qxv2Q/IVqATS3n5AaniOaPXeKndODFplbfS0e2h3w6Jh9wjhIVeFlnrQ+0BTnn5QnCx3dck8Kd8CzPJou4vZ91pWBrmywHppYtN++82CLU5sSJ X-OriginatorOrg: mips.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 00:06:36.4875 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0bc7f0f3-4d19-4eba-cd6b-08d5dbc1d995 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 Currently pch_gbe_reset() performs a number of tasks: 1) Calls pch_gbe_reset_hw(), which: 1a) Reads the MAC address from the hardware, even though we already did that in pch_gbe_open() & it should not have changed. 1b) Writes to the RESET register to reset the MAC. 1c) Writes the MODE register to configure GMII/RGMII mode, potentially before the MAC reset has finished. 1d) Polls for the completion of the MAC reset. 1e) Configures the device MAC address. 2) Calls pch_gbe_set_multi() to configure multicast addresses & hardware MAC filtering. 3) Calls pch_gbe_mac_init_rx_addrs(), which: 3a) Configures the device MAC address again, duplicating step 1e. 3b) Masks & clears all other MAC registers, wiping out the configuration performed by step 2. This is needlessly repetitive & split across 3 functions for no good reason. This patch cleans this up significantly by: a) Inlining pch_gbe_mac_reset_hw() into pch_gbe_reset(), moving the MODE register write to after the MAC reset has completed & removing the initial read of the MAC address. b) Removing pch_gbe_mac_init_rx_addrs() entirely, leaving the address configuration performed by pch_gbe_set_multi() intact. With this done we know that pch_gbe_reset() will leave us with the multicast MAC addresses & filtering configured correctly, so we can remove the call to pch_gbe_set_multi() in pch_gbe_watchdog(). 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 | 54 ++++--------------- 1 file changed, 11 insertions(+), 43 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 c9b064ac06a1..123c7818698d 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 @@ -357,22 +357,6 @@ static void pch_gbe_mac_mar_set(struct pch_gbe_hw *hw, u8 * addr, u32 index) pch_gbe_wait_clr_bit(&hw->reg->ADDR_MASK, PCH_GBE_BUSY); } -/** - * pch_gbe_mac_reset_hw - Reset hardware - * @hw: Pointer to the HW structure - */ -static void pch_gbe_mac_reset_hw(struct pch_gbe_hw *hw) -{ - /* Read the MAC address. and store to the private data */ - pch_gbe_mac_read_mac_addr(hw); - iowrite32(PCH_GBE_ALL_RST, &hw->reg->RESET); - iowrite32(PCH_GBE_MODE_GMII_ETHER, &hw->reg->MODE); - pch_gbe_wait_clr_bit(&hw->reg->RESET, PCH_GBE_ALL_RST); - /* Setup the receive addresses */ - pch_gbe_mac_mar_set(hw, hw->mac.addr, 0); - return; -} - static void pch_gbe_disable_mac_rx(struct pch_gbe_hw *hw) { u32 rctl; @@ -389,28 +373,6 @@ static void pch_gbe_enable_mac_rx(struct pch_gbe_hw *hw) iowrite32((rctl | PCH_GBE_MRE_MAC_RX_EN), &hw->reg->MAC_RX_EN); } -/** - * pch_gbe_mac_init_rx_addrs - Initialize receive address's - * @hw: Pointer to the HW structure - * @mar_count: Receive address registers - */ -static void pch_gbe_mac_init_rx_addrs(struct pch_gbe_hw *hw, u16 mar_count) -{ - u32 i; - - /* Setup the receive address */ - pch_gbe_mac_mar_set(hw, hw->mac.addr, 0); - - /* Zero out the other receive addresses */ - for (i = 1; i < mar_count; i++) { - iowrite32(0, &hw->reg->mac_adr[i].high); - iowrite32(0, &hw->reg->mac_adr[i].low); - } - iowrite32(0xFFFE, &hw->reg->ADDR_MASK); - /* wait busy */ - pch_gbe_wait_clr_bit(&hw->reg->ADDR_MASK, PCH_GBE_BUSY); -} - /** * pch_gbe_mac_force_mac_fc - Force the MAC's flow control settings * @hw: Pointer to the HW structure @@ -734,11 +696,18 @@ void pch_gbe_reset(struct pch_gbe_adapter *adapter) struct net_device *netdev = adapter->netdev; struct pch_gbe_hw *hw = &adapter->hw; - pch_gbe_mac_reset_hw(hw); - /* reprogram multicast address register after reset */ + /* Perform the reset & wait for it to complete */ + iowrite32(PCH_GBE_ALL_RST, &hw->reg->RESET); + pch_gbe_wait_clr_bit(&hw->reg->RESET, PCH_GBE_ALL_RST); + + /* Configure GMII/RGMII mode */ + iowrite32(PCH_GBE_MODE_GMII_ETHER, &hw->reg->MODE); + + /* Program the MAC address */ + pch_gbe_mac_mar_set(hw, hw->mac.addr, 0); + + /* Configure multicast addresses & filtering */ pch_gbe_set_multi(netdev); - /* Setup the receive address. */ - pch_gbe_mac_init_rx_addrs(hw, PCH_GBE_MAR_ENTRIES); } /** @@ -1944,7 +1913,6 @@ static void pch_gbe_watchdog(struct timer_list *t) pch_gbe_set_mode(adapter, hw->mac.link_speed, hw->mac.link_duplex); - pch_gbe_set_multi(netdev); pch_gbe_setup_tctl(adapter); pch_gbe_configure_tx(adapter); pch_gbe_setup_rctl(adapter); From patchwork Wed Jun 27 00:06:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Burton X-Patchwork-Id: 935182 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="W5vtWizg"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41Fjrl2bTBz9s0n for ; Wed, 27 Jun 2018 10:07:03 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964802AbeF0AG6 (ORCPT ); Tue, 26 Jun 2018 20:06:58 -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 S964787AbeF0AGt (ORCPT ); Tue, 26 Jun 2018 20:06:49 -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=8PAbRh0sk13ARFsdwmhqQzwVJhDzng8h0CVQ+6rF+rs=; b=W5vtWizgsLs3Uzxs/LlRRN4QwEW+0efwzHPS+WX+v9VKvLWL8GW/FiNqKkysNELJpvXLSky/QbmRW0jnqw13FzkLZAgT0/+6D0aC3iQ3+CBsEu0Vfx3wA+8DFzOvEbS2snz6UybJyQ4UDpV6hK2gPV+lyQgMMtAa79lOf2TumyM= 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:37 +0000 From: Paul Burton To: netdev@vger.kernel.org Cc: "David S . Miller" , Andrew Lunn , paul.burton@mips.com Subject: [PATCH v7 09/11] net: pch_gbe: Convert to mdiobus and phylib Date: Tue, 26 Jun 2018 17:06:10 -0700 Message-Id: <20180627000612.27263-10-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: b4e9dc50-14fe-4434-e838-08d5dbc1da0c 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:S+D9HrMdv6nyCoSIG+3bd3rJCBLJNanA3vlrP0kiNmP323+hmAzEitoeVcQQHe01b8AHoQ7GADoY5SE2ORJBaVYHhRW09gxIiLwVDCVVBrzfLfqHvQ2/SmbvY1a6GYQW0Kdud8p1o8Qx2sCfoyuMn/Zc2rK+Uduz7LSXZtj+DMk8uIFZRp+hY9AAXXT+gaP9w5z+o99+ED/PW4yJftNKCOOWgcbrc/vYYYxxL3HHK/AEo8TJgfR3xHnYqGTzE/eh; 25:66IWwEcrN3Q/uzsuygqwhDnD9BnW+Ujgz5FNum5ZX0qTWCChTbUxDttAfu3f06RIveaAbwYQI4fj0zFs1V5+5T51nAbia6J76M5siqqc5exc7RMrZ53gDN5Qs8kfGe1KvWDsyOgpIwrAkpFetO8kjFciyVx0/G9pQc7/MJ6CNZ5waSV+HX6RjzNuUGTHAmqIWi13qF4SGnZdeUi5UaPt9SMdRqBgun15kcxKB4SvxjGKvn5joyTZ2myKKaNnXh8QhDMquJQH4jY0BUFRbSiPiGoGHRpyPUHpkvWIcpZTp6yKFO87OATV4glhLXOzJclv/CISXGaNm8ITNl2QORADCA==; 31:a+FJE5OEXlKWQsFiVvFUqiVGEbkqjgGT+nMk3LoQQ9+PsjTPDTiNjEvbdcFdMOjeDS2YEEJRX5qvR04BFNr3nsa9QqRo2A2Yyr5evd3+QZuzOaLIxLa3ebhxWMNioBTKzvVcz7RC+WPbU20KJGt92EIZC9lNAZvPV9r+xXzw7QX8EfX5a9kEEdMcKkw26t2zMoqkm5QvCv5lUnFaIbqrIzPC74liM9IBCqW9m8aPc6E= X-MS-TrafficTypeDiagnostic: DM6PR08MB4940: X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 20:T/dPDmceGjxJh5O0JBx3QFecBVOM/vqDJLmSRhAzxwY29CkU5pQTupoCdJZ5pqD8WoydFv1S3g+LiRvomw5GFi+vaO89PCjmkY2v/zocRORZwOOjyX57YHywxQyLj9DfNVrSSP4iN6ReQaDQVXWWSBL1W5+1QQXdHvvzA51UeFSPMjxtS1mqqu8E12Ly5L6WY4dKWeKPIMF7q3yEVsgCMQkoVaEun9nLfU0kbOqzRuaTEB3OUhTKQFvqq3aY8ZiA; 4:RGMLledFOdkyoy26MSKawMlFznTc+I/ZS3S5euy1Itz+n0UGYN7aHsTHd8ybCIxiwBosZ8gZTw/nmjqfpzcEAfvaoq1lsfIEgrZbNkxvKUJ7ZNQnHjTBU0Ra0/c3YK9d3vesxWiwzVkstpKfXnp3iG8wws+AHEp6Jchr+5pCAfXaZNW7dv6l6z3MGWmFT4IOKjSYDb6luNSazJUVdueUM/goW9COePgaKAhIaRIqdVjgtqoEmWYyLWdPY5403LnrdpGdQP6iYmi/V1kigKj+Mf9dKZ6FlXywPHF6hoYYdJaNnA5HsM71KSFIdPq0rNrdxKWMzMntg9ICKmtjmtExu/A+i61Zx/07e0N6f3ejwg05r5RR7CC3sBzHcs5738Ox X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(22074186197030)(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)(69234005)(199004)(189003)(52116002)(36756003)(6666003)(5660300001)(16526019)(51416003)(66066001)(6916009)(2351001)(42882007)(14444005)(5024004)(316002)(386003)(53416004)(54906003)(47776003)(26005)(76176011)(6506007)(186003)(16586007)(6486002)(2361001)(48376002)(486006)(6116002)(8936002)(956004)(53946003)(476003)(50466002)(3846002)(446003)(1076002)(6306002)(6512007)(69596002)(2906002)(25786009)(4326008)(81156014)(8676002)(50226002)(575784001)(107886003)(7736002)(2616005)(44832011)(106356001)(11346002)(97736004)(68736007)(105586002)(305945005)(478600001)(81166006)(53936002)(2004002)(579004); 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:LCtv+R8CO+cj3I3AGMcXx1E/0rlPqiIXjg13ofCw45twKAJprAOQi9JSbvUGSkWcPgXxFuMOwU87t39SpNBALCWoq3y962czshBxDtH+ltcrkU7qgmFqnkZvjWEXV+iVHEopn0L9H3GeebjoQmz5FsukOtQC/ld08gunDmN+9piU1zDMscJ6uHXFi0KvLY+dVtPBhll73XnzFY2AAf6odzuZ0vf7yGv3chOJ9yPWbf/ooD/H8L/i9ZLQ7NL1FS4vv/GziCe2yrNGK8QTlF4mNts4Pw9VNp/AThPicQZviwnoP9HdIK1e33yu+psckRV/xcNAArYpkaibRf69Qbl1hVrpv+8O6KfimC5aTEWolTm3E5YObDFZNdPrcE60QCOekKB3U9NVOL143fVc/FMsUMCJqotCvJrvtEtuBicGLoy7wPKGhw4RpJVyK++jFx4ms5G+NOX+cZTnrMVTBLBwxvNaAblhoePFtEh7uidBuXfGsbxCh6GX40DLzXU7oKvTlL35HFeyak6axhWhG7P0d0z3bcQjvqFZ/MWX98t4Jt63a0iATG7MHrVBjai5AYoIa07uXpnfeOLfFhj/wrPX/2287kOUqyJpTAcNaMsswjDcnotlGHMK3Sc4Z3z5GwOYiKODRsX8uf3ZCVuN0eUTJ8fcECPh1crKWvVaRQmq37Jdjx7dO9ZvyL0HQj47I/4Jg8aCvex4NsmWy2JAP5OPCHvPHPPdGJ7Nm8pWJfemFvhM4p7Fd2Gv8bhG03sB+eZnoWfwxsKffVh+EpfIRfUOanieFu61u7O38zOeP6YV/OoFq4jaLWm3Um+NCxForIaTrzCd11TvVLDNN7cwFIPb8mjgQZNr12nqiw5lY2cKb4/jvbSkZVxX+ADszvh7Ma9DYsaK9vQyOAfZBXoeoeZpnPQfArJPvsMHXrziGMm7efdz5spzWfz8HBlczlaIWuSJOwE1iEhVwfa/eZIe+GzRwE7iXU9mZmX48e6rrZ74eiMssDbF3oUvldGdEiji+NTVpgkzjiNC7qMvtHCVdq+cRgmkifmBrqN9GAnu3mrL7GEzu3nIYMIfJTi59O0vLNPR9aRfGDwVYO39JmMxODezRtEq3hNhb1X6g89CnNZjcQQ5vTABOHhtdsPFMtFPJPlRd1sEOlxwokgs0gmU7d0XCoYtaTqUK1oorBUYiOBIGQdclwggOXiURDMIn1ftq+0nOsbhEzhpFyaAMjSB4oxE9qLxMUpUVWF8bUH2XVTqmtWPzlBg1igLwbGfp2Ex063XoU8fKOwCXgLK7vlLjA4SI3KIp4vCruQDIe1BBiUHZTbW7AO6tT0Eh75KfwzVCm8n6PiMywulb0WMa1FctvVxL1XfHR/JyA7lKMKh92CtLeDS5qzhgXMoIebpZX+a0X3JSJzlknvBjBBOPyp1RmhNUg2sKYUyiRTIPC4TU+IpFVELI1MP6un8LNvsqJcxgRtvyhPCtvUuOcHtqVTwrUeZBw== X-Microsoft-Antispam-Message-Info: IAPTxdhZeallcfVu/dG3P/iTnWazoX0ET8lUKxIv6GU3HYMJNjpTkJo72pdGdCSZ/Sx7LAsoNC9/lv2t/ym5AQgRhaWvztZCFD6tFulSKE8+VTsHeMYXtq733ubWgEYIWJUOaD/LIxuzr/ZGkMeWRqQle5ZA21DtZwvGatt0wrpjhxR1683JvYZeGhGEFOq/SEKjH3ur1tXA+v7OXFdRu1eG6XfJS/rQBoitfidJRIbZeAt1ZeG3bwAI5naOl3uLhCWY3Bw4OqtLVEb7e0inXrNyTamyolpKYiquIlyDZVkhk8hKL6/h7fW3K6NY3y5gC60D2GBlzxyj/e/HdTDVBCrRIhpiEKQlELP2vFcOpuw= X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 6:nk/5+Vo/LdipvQdlQe3D60UZfTTV1lKVuAkvNmmPd4OAK9LRW9p2YgMDg5Eqgqtq1YATGIc6LSw+NVu4mTV6oq/yvWn7SX7HnwXdlbJmRr5tKfIGEZNPH9dmYE3NIe7kNFKPP7c+iZmgasu6U3kXINuaYwy0hKMXyrUQgrKA45VjPOat/MfTKag7lP5vuU3avvQqk6kT8phDPFs4K813SQwxXn2ZIbihyTIOAaug2b/XwFvFKlRktBQM6LVPlu+1WMKvxL/4peNQAmtZVcOo4dAJpAiupkY+sNveXTkgyvgGV32c9vigO795ToFNoeetiv//yEy0pOtvJkxAm47h8zWJuBGeqjRmgwsGtw4Zeaw/WSq4M0VP4mDiah2eY07GbSmV0G8cfYk3JwzwZPgwoHImqvhiRVRD76+Yn0jh3rtCYi+sWD0o3N7zeLzui4HITnMiLOXqvJdrbFs4sVuJCg==; 5:ugFi9izYsKV+1YYLgNyV0p3MgjJmArNtgMOSdZNmsnDpWCqRf0rmlpFyFdei0UfNz3IersyB5ddvyKPCALSMa83IxvFH6yGDFdNMg2hY46vH99G158nv5JjfTPCQU90TsOA4oKdahUEn7ehJTbpZtmiqJAidITOJzFY2p61DnO0=; 24:UTmZyCOF9graeqwgEXzWJXJr9C0QiYfM3vddAcdEhPNSxITzlBUdRsTSGmWhzSxwq87NlaA9rGOH6l2uBNVXHLLE/xDDbqp93tSKplYLgaY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 7:/V/9WVbfnqPoao1Rltb191xwQFEfQCL6Edod8QUykal0No/ygGfgVLz33CF0G+gJajwzigA3GQVcc1fs5ccxq/VyQPecNKwDV0PuDzuJYc08vHw3ylxZrwDcdnvR1jQtN4ASwudEee5qc8Vs4+qr6JwUzO+Eb54Ea0roWxpngBHx+3UfD6iZZ1Yge3EV/ugWWsPxmaE1fCsnDYomsKtpEteFipEy+tpFWaE4pIaOSUGknlGxOrQGA0N0jXOpRnin X-OriginatorOrg: mips.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 00:06:37.2680 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b4e9dc50-14fe-4434-e838-08d5dbc1da0c 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 From: Andrew Lunn Convert this driver to use the mdio bus and phylib infrastructure. It will then use the common AT803X PHY driver, rather than use its own code. Have the shared code also handle the GPIO used to reset the PHY. Over all, these changes should make it easier to use other PHYs with the MAC chip, and reduces the lines of code. [paul.burton@mips.com: - Select CONFIG_PHYLIB. - Drop selection of CONFIG_MII. - Imply AT803X_PHY for X86_32, rather than selecting it for all. - Add GPIOF_ACTIVE_LOW to the minnow PHY reset GPIO flags. - Rebase atop changes in the rest of the series. - Drop the AR8031 PHY hibernation disable fixup.] Signed-off-by: Andrew Lunn Signed-off-by: Paul Burton Cc: Andrew Lunn Cc: David S. Miller Cc: netdev@vger.kernel.org --- Changes in v7: - Heavy rebasing atop earlier patches. Changes in v6: - New patch drivers/net/ethernet/oki-semi/pch_gbe/Kconfig | 3 +- .../net/ethernet/oki-semi/pch_gbe/Makefile | 2 +- .../net/ethernet/oki-semi/pch_gbe/pch_gbe.h | 7 +- .../oki-semi/pch_gbe/pch_gbe_ethtool.c | 88 +---- .../ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 239 ++++++------- .../ethernet/oki-semi/pch_gbe/pch_gbe_param.c | 265 -------------- .../ethernet/oki-semi/pch_gbe/pch_gbe_phy.c | 335 ------------------ .../ethernet/oki-semi/pch_gbe/pch_gbe_phy.h | 34 -- 8 files changed, 126 insertions(+), 847 deletions(-) delete mode 100644 drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.c delete mode 100644 drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.h diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig b/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig index 5f7a35212796..5276f4ff3b63 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig +++ b/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig @@ -5,7 +5,8 @@ config PCH_GBE tristate "OKI SEMICONDUCTOR IOH(ML7223/ML7831) GbE" depends on PCI && (X86_32 || COMPILE_TEST) - select MII + select PHYLIB + imply AT803X_PHY if X86_32 select PTP_1588_CLOCK_PCH select NET_PTP_CLASSIFY ---help--- diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/Makefile b/drivers/net/ethernet/oki-semi/pch_gbe/Makefile index 862de0f3bc41..133c89bc2933 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/Makefile +++ b/drivers/net/ethernet/oki-semi/pch_gbe/Makefile @@ -1,4 +1,4 @@ obj-$(CONFIG_PCH_GBE) += pch_gbe.o -pch_gbe-y := pch_gbe_phy.o pch_gbe_ethtool.o pch_gbe_param.o +pch_gbe-y := pch_gbe_ethtool.o pch_gbe_param.o pch_gbe-y += pch_gbe_main.o diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h index f8acd8031951..e6a0bd053ae5 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h @@ -22,7 +22,8 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -#include +#include +#include #include #include #include @@ -578,8 +579,8 @@ struct pch_gbe_adapter { struct pch_gbe_hw hw; struct pch_gbe_hw_stats stats; struct work_struct reset_task; - struct mii_if_info mii; - struct timer_list watchdog_timer; + struct mii_bus *mdiobus; + struct phy_device *phydev; u32 wake_up_evt; struct pch_gbe_tx_ring *tx_ring; struct pch_gbe_rx_ring *rx_ring; diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c index adaa0024adfe..5dc08eccb7e6 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_ethtool.c @@ -17,7 +17,6 @@ * along with this program; if not, see . */ #include "pch_gbe.h" -#include "pch_gbe_phy.h" /** * pch_gbe_stats - Stats item information @@ -71,41 +70,8 @@ static const struct pch_gbe_stats pch_gbe_gstrings_stats[] = { #define PCH_GBE_STATS_LEN (PCH_GBE_GLOBAL_STATS_LEN + PCH_GBE_QUEUE_STATS_LEN) #define PCH_GBE_MAC_REGS_LEN (sizeof(struct pch_gbe_regs) / 4) +#define PCH_GBE_PHY_REGS_LEN 32 #define PCH_GBE_REGS_LEN (PCH_GBE_MAC_REGS_LEN + PCH_GBE_PHY_REGS_LEN) -/** - * pch_gbe_get_link_ksettings - Get device-specific settings - * @netdev: Network interface device structure - * @ecmd: Ethtool command - * Returns: - * 0: Successful. - * Negative value: Failed. - */ -static int pch_gbe_get_link_ksettings(struct net_device *netdev, - struct ethtool_link_ksettings *ecmd) -{ - struct pch_gbe_adapter *adapter = netdev_priv(netdev); - u32 supported, advertising; - - mii_ethtool_get_link_ksettings(&adapter->mii, ecmd); - - ethtool_convert_link_mode_to_legacy_u32(&supported, - ecmd->link_modes.supported); - ethtool_convert_link_mode_to_legacy_u32(&advertising, - ecmd->link_modes.advertising); - - supported &= ~(SUPPORTED_TP | SUPPORTED_1000baseT_Half); - advertising &= ~(ADVERTISED_TP | ADVERTISED_1000baseT_Half); - - ethtool_convert_legacy_u32_to_link_mode(ecmd->link_modes.supported, - supported); - ethtool_convert_legacy_u32_to_link_mode(ecmd->link_modes.advertising, - advertising); - - if (!netif_carrier_ok(adapter->netdev)) - ecmd->base.speed = SPEED_UNKNOWN; - - return 0; -} /** * pch_gbe_set_link_ksettings - Set device-specific settings @@ -119,34 +85,22 @@ static int pch_gbe_set_link_ksettings(struct net_device *netdev, const struct ethtool_link_ksettings *ecmd) { struct pch_gbe_adapter *adapter = netdev_priv(netdev); + struct phy_device *phydev = adapter->phydev; struct pch_gbe_hw *hw = &adapter->hw; - struct ethtool_link_ksettings copy_ecmd; - u32 speed = ecmd->base.speed; u32 advertising; int ret; - pch_gbe_phy_write_reg_miic(hw, MII_BMCR, BMCR_RESET); - - memcpy(©_ecmd, ecmd, sizeof(*ecmd)); - - /* when set_settings() is called with a ethtool_cmd previously - * filled by get_settings() on a down link, speed is -1: */ - if (speed == UINT_MAX) { - speed = SPEED_1000; - copy_ecmd.base.speed = speed; - copy_ecmd.base.duplex = DUPLEX_FULL; - } - ret = mii_ethtool_set_link_ksettings(&adapter->mii, ©_ecmd); + ret = phy_ethtool_set_link_ksettings(netdev, ecmd); if (ret) { - netdev_err(netdev, "Error: mii_ethtool_set_link_ksettings\n"); + netdev_err(netdev, "Error: phy_ethtool_set_link_ksettings\n"); return ret; } - hw->mac.link_speed = speed; - hw->mac.link_duplex = copy_ecmd.base.duplex; + hw->mac.link_speed = phydev->speed; + hw->mac.link_duplex = phydev->duplex; ethtool_convert_link_mode_to_legacy_u32( - &advertising, copy_ecmd.link_modes.advertising); + &advertising, ecmd->link_modes.advertising); hw->phy.autoneg_advertised = advertising; - hw->mac.autoneg = copy_ecmd.base.autoneg; + hw->mac.autoneg = ecmd->base.autoneg; /* reset the link */ if (netif_running(adapter->netdev)) { @@ -197,16 +151,14 @@ static void pch_gbe_get_regs(struct net_device *netdev, struct pch_gbe_hw *hw = &adapter->hw; struct pci_dev *pdev = adapter->pdev; u32 *regs_buff = p; - u16 i, tmp; + u16 i; regs->version = 0x1000000 | (__u32)pdev->revision << 16 | pdev->device; for (i = 0; i < PCH_GBE_MAC_REGS_LEN; i++) *regs_buff++ = ioread32(&hw->reg->INT_ST + i); /* PHY register */ - for (i = 0; i < PCH_GBE_PHY_REGS_LEN; i++) { - pch_gbe_phy_read_reg_miic(&adapter->hw, i, &tmp); - *regs_buff++ = tmp; - } + for (i = 0; i < PCH_GBE_PHY_REGS_LEN; i++) + *regs_buff++ = phy_read(adapter->phydev, i); } /** @@ -261,20 +213,6 @@ static int pch_gbe_set_wol(struct net_device *netdev, return 0; } -/** - * pch_gbe_nway_reset - Restart autonegotiation - * @netdev: Network interface device structure - * Returns: - * 0: Successful. - * Negative value: Failed. - */ -static int pch_gbe_nway_reset(struct net_device *netdev) -{ - struct pch_gbe_adapter *adapter = netdev_priv(netdev); - - return mii_nway_restart(&adapter->mii); -} - /** * pch_gbe_get_ringparam - Report ring sizes * @netdev: Network interface device structure @@ -497,7 +435,7 @@ static const struct ethtool_ops pch_gbe_ethtool_ops = { .get_regs = pch_gbe_get_regs, .get_wol = pch_gbe_get_wol, .set_wol = pch_gbe_set_wol, - .nway_reset = pch_gbe_nway_reset, + .nway_reset = phy_ethtool_nway_reset, .get_link = ethtool_op_get_link, .get_ringparam = pch_gbe_get_ringparam, .set_ringparam = pch_gbe_set_ringparam, @@ -506,7 +444,7 @@ static const struct ethtool_ops pch_gbe_ethtool_ops = { .get_strings = pch_gbe_get_strings, .get_ethtool_stats = pch_gbe_get_ethtool_stats, .get_sset_count = pch_gbe_get_sset_count, - .get_link_ksettings = pch_gbe_get_link_ksettings, + .get_link_ksettings = phy_ethtool_get_link_ksettings, .set_link_ksettings = pch_gbe_set_link_ksettings, }; 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 123c7818698d..7fd10550cc57 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 @@ -18,11 +18,11 @@ */ #include "pch_gbe.h" -#include "pch_gbe_phy.h" #include #include #include #include +#include #define DRV_VERSION "1.01" const char pch_driver_version[] = DRV_VERSION; @@ -33,7 +33,6 @@ const char pch_driver_version[] = DRV_VERSION; #define DSC_INIT16 0xC000 #define PCH_GBE_DMA_ALIGN 0 #define PCH_GBE_DMA_PADDING 2 -#define PCH_GBE_WATCHDOG_PERIOD (5 * HZ) /* watchdog time */ #define PCH_GBE_PCI_BAR 1 #define PCH_GBE_RESERVE_MEMORY 0x200000 /* 2MB */ @@ -112,9 +111,8 @@ const char pch_driver_version[] = DRV_VERSION; #define MINNOW_PHY_RESET_GPIO 13 -static int pch_gbe_mdio_read(struct net_device *netdev, int addr, int reg); -static void pch_gbe_mdio_write(struct net_device *netdev, int addr, int reg, - int data); +#define PCH_GBE_PHY_RESET_DELAY_US 10 + static void pch_gbe_set_multi(struct net_device *netdev); static int pch_ptp_match(struct sk_buff *skb, u16 uid_hi, u32 uid_lo, u16 seqid) @@ -569,66 +567,6 @@ static void pch_gbe_init_stats(struct pch_gbe_adapter *adapter) return; } -/** - * pch_gbe_init_phy - Initialize PHY - * @adapter: Board private structure to initialize - * Returns: - * 0: Successfully - * Negative value: Failed - */ -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++) { - adapter->mii.phy_id = (addr == 0) ? 1 : (addr == 1) ? 0 : addr; - bmcr = pch_gbe_mdio_read(netdev, adapter->mii.phy_id, MII_BMCR); - stat = pch_gbe_mdio_read(netdev, adapter->mii.phy_id, MII_BMSR); - stat = pch_gbe_mdio_read(netdev, adapter->mii.phy_id, MII_BMSR); - if (!((bmcr == 0xFFFF) || ((stat == 0) && (bmcr == 0)))) - break; - } - adapter->hw.phy.addr = adapter->mii.phy_id; - netdev_dbg(netdev, "phy_addr = %d\n", adapter->mii.phy_id); - if (addr == PCH_GBE_PHY_REGS_LEN) - return -EAGAIN; - /* Selected the phy and isolate the rest */ - for (addr = 0; addr < PCH_GBE_PHY_REGS_LEN; addr++) { - if (addr != adapter->mii.phy_id) { - pch_gbe_mdio_write(netdev, addr, MII_BMCR, - BMCR_ISOLATE); - } else { - bmcr = pch_gbe_mdio_read(netdev, addr, MII_BMCR); - pch_gbe_mdio_write(netdev, addr, MII_BMCR, - bmcr & ~BMCR_ISOLATE); - } - } - - /* MII setup */ - adapter->mii.phy_id_mask = 0x1F; - adapter->mii.reg_num_mask = 0x1F; - adapter->mii.dev = adapter->netdev; - 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; -} - /** * pch_gbe_mdio_read - The read function for mii * @netdev: Network interface device structure @@ -638,13 +576,12 @@ static int pch_gbe_init_phy(struct pch_gbe_adapter *adapter) * 0: Successfully * Negative value: Failed */ -static int pch_gbe_mdio_read(struct net_device *netdev, int addr, int reg) +static int pch_gbe_mdio_read(struct mii_bus *bus, int addr, int reg) { - struct pch_gbe_adapter *adapter = netdev_priv(netdev); + struct pch_gbe_adapter *adapter = bus->priv; struct pch_gbe_hw *hw = &adapter->hw; - return pch_gbe_mac_ctrl_miim(hw, addr, PCH_GBE_HAL_MIIM_READ, reg, - (u16) 0); + return pch_gbe_mac_ctrl_miim(hw, addr, PCH_GBE_HAL_MIIM_READ, reg, 0); } /** @@ -654,13 +591,34 @@ static int pch_gbe_mdio_read(struct net_device *netdev, int addr, int reg) * @reg: Access location * @data: Write data */ -static void pch_gbe_mdio_write(struct net_device *netdev, - int addr, int reg, int data) +static int pch_gbe_mdio_write(struct mii_bus *bus, int addr, int reg, u16 data) { - struct pch_gbe_adapter *adapter = netdev_priv(netdev); + struct pch_gbe_adapter *adapter = bus->priv; struct pch_gbe_hw *hw = &adapter->hw; - pch_gbe_mac_ctrl_miim(hw, addr, PCH_GBE_HAL_MIIM_WRITE, reg, data); + return pch_gbe_mac_ctrl_miim(hw, addr, PCH_GBE_HAL_MIIM_WRITE, reg, + data); +} + +static int pch_gbe_init_mdio(struct pch_gbe_adapter *adapter) +{ + struct device *dev = &adapter->pdev->dev; + struct mii_bus *bus; + + bus = devm_mdiobus_alloc(dev); + if (!bus) + return -ENOMEM; + + bus->read = pch_gbe_mdio_read; + bus->write = pch_gbe_mdio_write; + bus->parent = dev; + bus->name = "pch_gbe"; + snprintf(bus->id, MII_BUS_ID_SIZE, "%s-mii", dev_name(dev)); + bus->priv = adapter; + + adapter->mdiobus = bus; + + return mdiobus_register(bus); } /** @@ -1829,7 +1787,6 @@ int pch_gbe_up(struct pch_gbe_adapter *adapter) } adapter->tx_queue_len = netdev->tx_queue_len; - mod_timer(&adapter->watchdog_timer, jiffies); return 0; freeirq: @@ -1855,8 +1812,6 @@ void pch_gbe_down(struct pch_gbe_adapter *adapter) pch_gbe_irq_disable(adapter); pch_gbe_free_irq(adapter); - del_timer_sync(&adapter->watchdog_timer); - netdev->tx_queue_len = adapter->tx_queue_len; netif_carrier_off(netdev); netif_stop_queue(netdev); @@ -1877,32 +1832,22 @@ void pch_gbe_down(struct pch_gbe_adapter *adapter) * pch_gbe_watchdog - Watchdog process * @data: Board private structure */ -static void pch_gbe_watchdog(struct timer_list *t) +static void pch_gbe_change_link(struct net_device *netdev) { - struct pch_gbe_adapter *adapter = from_timer(adapter, t, - watchdog_timer); + struct pch_gbe_adapter *adapter = netdev_priv(netdev); struct pch_gbe_rx_ring *rx_ring = adapter->rx_ring; struct pch_gbe_tx_ring *tx_ring = adapter->tx_ring; - struct net_device *netdev = adapter->netdev; + struct phy_device *phydev = adapter->phydev; struct pch_gbe_hw *hw = &adapter->hw; netdev_dbg(netdev, "right now = %ld\n", jiffies); pch_gbe_update_stats(adapter); - if ((mii_link_ok(&adapter->mii)) && (!netif_carrier_ok(netdev))) { - struct ethtool_cmd cmd = { .cmd = ETHTOOL_GSET }; + if (phydev->link) { netdev->tx_queue_len = adapter->tx_queue_len; - /* mii library handles link maintenance tasks */ - if (mii_ethtool_gset(&adapter->mii, &cmd)) { - netdev_err(netdev, "ethtool get setting Error\n"); - mod_timer(&adapter->watchdog_timer, - round_jiffies(jiffies + - PCH_GBE_WATCHDOG_PERIOD)); - return; - } - hw->mac.link_speed = ethtool_cmd_speed(&cmd); - hw->mac.link_duplex = cmd.duplex; + hw->mac.link_speed = phydev->speed; + hw->mac.link_duplex = phydev->duplex; pch_gbe_reset(adapter); @@ -1927,23 +1872,43 @@ static void pch_gbe_watchdog(struct timer_list *t) napi_enable(&adapter->napi); pch_gbe_irq_enable(adapter); netif_start_queue(adapter->netdev); - - netdev_dbg(netdev, - "Link is Up %d Mbps %s-Duplex\n", - hw->mac.link_speed, - cmd.duplex == DUPLEX_FULL ? "Full" : "Half"); - netif_carrier_on(netdev); netif_wake_queue(netdev); - } else if ((!mii_link_ok(&adapter->mii)) && - (netif_carrier_ok(netdev))) { - netdev_dbg(netdev, "NIC Link is Down\n"); + } else if (!phydev->link && netif_carrier_ok(netdev)) { hw->mac.link_speed = SPEED_10; hw->mac.link_duplex = DUPLEX_HALF; - netif_carrier_off(netdev); netif_stop_queue(netdev); } - mod_timer(&adapter->watchdog_timer, - round_jiffies(jiffies + PCH_GBE_WATCHDOG_PERIOD)); + + phy_print_status(phydev); +} + +/** + * pch_gbe_init_phy - Initialize PHY + * @adapter: Board private structure to initialize + * Returns: + * 0: Successfully + * Negative value: Failed + */ +static int pch_gbe_init_phy(struct pch_gbe_adapter *adapter) +{ + struct net_device *netdev = adapter->netdev; + int ret; + + adapter->phydev = phy_find_first(adapter->mdiobus); + if (!adapter->phydev) + return -ENODEV; + + if (adapter->pdata && adapter->pdata->platform_init) + adapter->pdata->platform_init(adapter->pdev); + + ret = phy_connect_direct(netdev, adapter->phydev, pch_gbe_change_link, + PHY_INTERFACE_MODE_RGMII_TXID); + if (ret) { + netdev_err(netdev, "Could not attach to PHY\n"); + return ret; + } + + return 0; } /** @@ -1990,7 +1955,6 @@ static int pch_gbe_sw_init(struct pch_gbe_adapter *adapter) static int pch_gbe_open(struct net_device *netdev) { struct pch_gbe_adapter *adapter = netdev_priv(netdev); - struct pch_gbe_hw *hw = &adapter->hw; int err; /* allocate transmit descriptors */ @@ -2001,7 +1965,7 @@ static int pch_gbe_open(struct net_device *netdev) err = pch_gbe_setup_rx_resources(adapter, adapter->rx_ring); if (err) goto err_setup_rx; - pch_gbe_phy_power_up(hw); + phy_start(adapter->phydev); err = pch_gbe_up(adapter); if (err) goto err_up; @@ -2010,7 +1974,7 @@ static int pch_gbe_open(struct net_device *netdev) err_up: if (!adapter->wake_up_evt) - pch_gbe_phy_power_down(hw); + phy_stop(adapter->phydev); pch_gbe_free_rx_resources(adapter, adapter->rx_ring); err_setup_rx: pch_gbe_free_tx_resources(adapter, adapter->tx_ring); @@ -2029,11 +1993,10 @@ static int pch_gbe_open(struct net_device *netdev) static int pch_gbe_stop(struct net_device *netdev) { struct pch_gbe_adapter *adapter = netdev_priv(netdev); - struct pch_gbe_hw *hw = &adapter->hw; pch_gbe_down(adapter); if (!adapter->wake_up_evt) - pch_gbe_phy_power_down(hw); + phy_stop(adapter->phydev); pch_gbe_free_tx_resources(adapter, adapter->tx_ring); pch_gbe_free_rx_resources(adapter, adapter->rx_ring); return 0; @@ -2245,7 +2208,7 @@ static int pch_gbe_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) if (cmd == SIOCSHWTSTAMP) return hwtstamp_ioctl(netdev, ifr, cmd); - return generic_mii_ioctl(&adapter->mii, if_mii(ifr), cmd, NULL); + return phy_mii_ioctl(adapter->phydev, ifr, cmd); } /** @@ -2363,7 +2326,7 @@ static pci_ers_result_t pch_gbe_io_slot_reset(struct pci_dev *pdev) } pci_set_master(pdev); pci_enable_wake(pdev, PCI_D0, 0); - pch_gbe_phy_power_up(hw); + phy_start(adapter->phydev); pch_gbe_reset(adapter); /* Clear wake up status */ pch_gbe_mac_set_wol_event(hw, 0); @@ -2408,7 +2371,7 @@ static int __pch_gbe_suspend(struct pci_dev *pdev) pch_gbe_mac_set_wol_event(hw, wufc); pci_disable_device(pdev); } else { - pch_gbe_phy_power_down(hw); + phy_stop(adapter->phydev); pch_gbe_mac_set_wol_event(hw, wufc); pci_disable_device(pdev); } @@ -2437,7 +2400,7 @@ static int pch_gbe_resume(struct device *device) return err; } pci_set_master(pdev); - pch_gbe_phy_power_up(hw); + phy_start(adapter->phydev); pch_gbe_reset(adapter); /* Clear wake on lan control and status */ pch_gbe_mac_set_wol_event(hw, 0); @@ -2467,7 +2430,9 @@ static void pch_gbe_remove(struct pci_dev *pdev) cancel_work_sync(&adapter->reset_task); unregister_netdev(netdev); - pch_gbe_phy_hw_reset(&adapter->hw); + phy_stop(adapter->phydev); + phy_detach(adapter->phydev); + mdiobus_unregister(adapter->mdiobus); free_netdev(netdev); } @@ -2517,8 +2482,6 @@ static int pch_gbe_probe(struct pci_dev *pdev, adapter->hw.back = adapter; adapter->hw.reg = pcim_iomap_table(pdev)[PCH_GBE_PCI_BAR]; adapter->pdata = (struct pch_gbe_privdata *)pci_id->driver_data; - if (adapter->pdata && adapter->pdata->platform_init) - adapter->pdata->platform_init(pdev); adapter->ptp_pdev = pci_get_domain_bus_and_slot(pci_domain_nr(adapter->pdev->bus), @@ -2526,7 +2489,6 @@ static int pch_gbe_probe(struct pci_dev *pdev, PCI_DEVFN(12, 4)); netdev->netdev_ops = &pch_gbe_netdev_ops; - netdev->watchdog_timeo = PCH_GBE_WATCHDOG_PERIOD; netif_napi_add(netdev, &adapter->napi, pch_gbe_napi_poll, PCH_GBE_RX_WEIGHT); netdev->hw_features = NETIF_F_RXCSUM | @@ -2548,18 +2510,24 @@ static int pch_gbe_probe(struct pci_dev *pdev, pch_gbe_check_options(adapter); + ret = pch_gbe_init_mdio(adapter); + if (ret) { + dev_err(&pdev->dev, "MDIO initialize error\n"); + goto err_free_netdev; + } + /* Initialize PHY */ ret = pch_gbe_init_phy(adapter); if (ret) { dev_err(&pdev->dev, "PHY initialize error\n"); - goto err_free_adapter; + goto err_free_mdiobus; } /* Read the MAC address. and store to the private data */ ret = pch_gbe_mac_read_mac_addr(&adapter->hw); if (ret) { dev_err(&pdev->dev, "MAC address Read Error\n"); - goto err_free_adapter; + goto err_free_phy; } memcpy(netdev->dev_addr, adapter->hw.mac.addr, netdev->addr_len); @@ -2573,7 +2541,6 @@ static int pch_gbe_probe(struct pci_dev *pdev, dev_err(&pdev->dev, "Invalid MAC address, " "interface disabled.\n"); } - timer_setup(&adapter->watchdog_timer, pch_gbe_watchdog, 0); INIT_WORK(&adapter->reset_task, pch_gbe_reset_task); @@ -2583,7 +2550,8 @@ static int pch_gbe_probe(struct pci_dev *pdev, ret = register_netdev(netdev); if (ret) - goto err_free_adapter; + goto err_free_phy; + /* tell the stack to leave us alone until pch_gbe_open() is called */ netif_carrier_off(netdev); netif_stop_queue(netdev); @@ -2593,8 +2561,10 @@ static int pch_gbe_probe(struct pci_dev *pdev, device_set_wakeup_enable(&pdev->dev, 1); return 0; -err_free_adapter: - pch_gbe_phy_hw_reset(&adapter->hw); +err_free_phy: + phy_disconnect(adapter->phydev); +err_free_mdiobus: + mdiobus_unregister(adapter->mdiobus); err_free_netdev: free_netdev(netdev); return ret; @@ -2605,23 +2575,26 @@ static int pch_gbe_probe(struct pci_dev *pdev, */ static int pch_gbe_minnow_platform_init(struct pci_dev *pdev) { - unsigned long flags = GPIOF_DIR_OUT | GPIOF_INIT_HIGH | GPIOF_EXPORT; + unsigned long flags = GPIOF_DIR_OUT | GPIOF_INIT_HIGH | + GPIOF_EXPORT | GPIOF_ACTIVE_LOW; + struct net_device *netdev = pci_get_drvdata(pdev); + struct pch_gbe_adapter *adapter = netdev_priv(netdev); + struct phy_device *phydev = adapter->phydev; + struct device *dev = &adapter->pdev->dev; unsigned gpio = MINNOW_PHY_RESET_GPIO; int ret; - ret = devm_gpio_request_one(&pdev->dev, gpio, flags, - "minnow_phy_reset"); + ret = devm_gpio_request_one(dev, gpio, flags, "minnow_phy_reset"); if (ret) { - dev_err(&pdev->dev, - "ERR: Can't request PHY reset GPIO line '%d'\n", gpio); + netdev_err(netdev, + "ERR: Can't request PHY reset GPIO line '%d'\n", + gpio); return ret; } - gpio_set_value(gpio, 0); - usleep_range(1250, 1500); - gpio_set_value(gpio, 1); - usleep_range(1250, 1500); - + phydev->mdio.reset = gpio_to_desc(gpio); + phydev->mdio.reset_assert_delay = 1500; + phydev->mdio.reset_deassert_delay = 1500; return ret; } diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c index e097e6baaac4..c1fd66cadc76 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c +++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c @@ -42,60 +42,6 @@ static int RxDescriptors = OPTION_UNSET; module_param(RxDescriptors, int, 0); MODULE_PARM_DESC(RxDescriptors, "Number of receive descriptors"); -/** - * Speed - User Specified Speed Override - * @Valid Range: 0, 10, 100, 1000 - * - 0: auto-negotiate at all supported speeds - * - 10: only link at 10 Mbps - * - 100: only link at 100 Mbps - * - 1000: only link at 1000 Mbps - * @Default Value: 0 - */ -static int Speed = OPTION_UNSET; -module_param(Speed, int, 0); -MODULE_PARM_DESC(Speed, "Speed setting"); - -/** - * Duplex - User Specified Duplex Override - * @Valid Range: 0-2 - * - 0: auto-negotiate for duplex - * - 1: only link at half duplex - * - 2: only link at full duplex - * @Default Value: 0 - */ -static int Duplex = OPTION_UNSET; -module_param(Duplex, int, 0); -MODULE_PARM_DESC(Duplex, "Duplex setting"); - -#define HALF_DUPLEX 1 -#define FULL_DUPLEX 2 - -/** - * AutoNeg - Auto-negotiation Advertisement Override - * @Valid Range: 0x01-0x0F, 0x20-0x2F - * - * The AutoNeg value is a bit mask describing which speed and duplex - * combinations should be advertised during auto-negotiation. - * The supported speed and duplex modes are listed below - * - * Bit 7 6 5 4 3 2 1 0 - * Speed (Mbps) N/A N/A 1000 N/A 100 100 10 10 - * Duplex Full Full Half Full Half - * - * @Default Value: 0x2F (copper) - */ -static int AutoNeg = OPTION_UNSET; -module_param(AutoNeg, int, 0); -MODULE_PARM_DESC(AutoNeg, "Advertised auto-negotiation setting"); - -#define PHY_ADVERTISE_10_HALF 0x0001 -#define PHY_ADVERTISE_10_FULL 0x0002 -#define PHY_ADVERTISE_100_HALF 0x0004 -#define PHY_ADVERTISE_100_FULL 0x0008 -#define PHY_ADVERTISE_1000_HALF 0x0010 /* Not used, just FYI */ -#define PHY_ADVERTISE_1000_FULL 0x0020 -#define PCH_AUTONEG_ADVERTISE_DEFAULT 0x2F - /** * FlowControl - User Specified Flow Control Override * @Valid Range: 0-3 @@ -159,54 +105,6 @@ struct pch_gbe_option { } arg; }; -static const struct pch_gbe_opt_list speed_list[] = { - { 0, "" }, - { SPEED_10, "" }, - { SPEED_100, "" }, - { SPEED_1000, "" } -}; - -static const struct pch_gbe_opt_list dplx_list[] = { - { 0, "" }, - { HALF_DUPLEX, "" }, - { FULL_DUPLEX, "" } -}; - -static const struct pch_gbe_opt_list an_list[] = - #define AA "AutoNeg advertising " - {{ 0x01, AA "10/HD" }, - { 0x02, AA "10/FD" }, - { 0x03, AA "10/FD, 10/HD" }, - { 0x04, AA "100/HD" }, - { 0x05, AA "100/HD, 10/HD" }, - { 0x06, AA "100/HD, 10/FD" }, - { 0x07, AA "100/HD, 10/FD, 10/HD" }, - { 0x08, AA "100/FD" }, - { 0x09, AA "100/FD, 10/HD" }, - { 0x0a, AA "100/FD, 10/FD" }, - { 0x0b, AA "100/FD, 10/FD, 10/HD" }, - { 0x0c, AA "100/FD, 100/HD" }, - { 0x0d, AA "100/FD, 100/HD, 10/HD" }, - { 0x0e, AA "100/FD, 100/HD, 10/FD" }, - { 0x0f, AA "100/FD, 100/HD, 10/FD, 10/HD" }, - { 0x20, AA "1000/FD" }, - { 0x21, AA "1000/FD, 10/HD" }, - { 0x22, AA "1000/FD, 10/FD" }, - { 0x23, AA "1000/FD, 10/FD, 10/HD" }, - { 0x24, AA "1000/FD, 100/HD" }, - { 0x25, AA "1000/FD, 100/HD, 10/HD" }, - { 0x26, AA "1000/FD, 100/HD, 10/FD" }, - { 0x27, AA "1000/FD, 100/HD, 10/FD, 10/HD" }, - { 0x28, AA "1000/FD, 100/FD" }, - { 0x29, AA "1000/FD, 100/FD, 10/HD" }, - { 0x2a, AA "1000/FD, 100/FD, 10/FD" }, - { 0x2b, AA "1000/FD, 100/FD, 10/FD, 10/HD" }, - { 0x2c, AA "1000/FD, 100/FD, 100/HD" }, - { 0x2d, AA "1000/FD, 100/FD, 100/HD, 10/HD" }, - { 0x2e, AA "1000/FD, 100/FD, 100/HD, 10/FD" }, - { 0x2f, AA "1000/FD, 100/FD, 100/HD, 10/FD, 10/HD" } -}; - static const struct pch_gbe_opt_list fc_list[] = { { PCH_GBE_FC_NONE, "Flow Control Disabled" }, { PCH_GBE_FC_RX_PAUSE, "Flow Control Receive Only" }, @@ -275,167 +173,6 @@ static int pch_gbe_validate_option(int *value, return -1; } -/** - * pch_gbe_check_copper_options - Range Checking for Link Options, Copper Version - * @adapter: Board private structure - */ -static void pch_gbe_check_copper_options(struct pch_gbe_adapter *adapter) -{ - struct pch_gbe_hw *hw = &adapter->hw; - int speed, dplx; - - { /* Speed */ - static const struct pch_gbe_option opt = { - .type = list_option, - .name = "Speed", - .err = "parameter ignored", - .def = 0, - .arg = { .l = { .nr = (int)ARRAY_SIZE(speed_list), - .p = speed_list } } - }; - speed = Speed; - pch_gbe_validate_option(&speed, &opt, adapter); - } - { /* Duplex */ - static const struct pch_gbe_option opt = { - .type = list_option, - .name = "Duplex", - .err = "parameter ignored", - .def = 0, - .arg = { .l = { .nr = (int)ARRAY_SIZE(dplx_list), - .p = dplx_list } } - }; - dplx = Duplex; - pch_gbe_validate_option(&dplx, &opt, adapter); - } - - { /* Autoneg */ - static const struct pch_gbe_option opt = { - .type = list_option, - .name = "AutoNeg", - .err = "parameter ignored", - .def = PCH_AUTONEG_ADVERTISE_DEFAULT, - .arg = { .l = { .nr = (int)ARRAY_SIZE(an_list), - .p = an_list} } - }; - if (speed || dplx) { - netdev_dbg(adapter->netdev, - "AutoNeg specified along with Speed or Duplex, AutoNeg parameter ignored\n"); - hw->phy.autoneg_advertised = opt.def; - } else { - int tmp = AutoNeg; - - pch_gbe_validate_option(&tmp, &opt, adapter); - hw->phy.autoneg_advertised = tmp; - } - } - - switch (speed + dplx) { - case 0: - hw->mac.autoneg = hw->mac.fc_autoneg = 1; - if ((speed || dplx)) - netdev_dbg(adapter->netdev, - "Speed and duplex autonegotiation enabled\n"); - hw->mac.link_speed = SPEED_10; - hw->mac.link_duplex = DUPLEX_HALF; - break; - case HALF_DUPLEX: - netdev_dbg(adapter->netdev, - "Half Duplex specified without Speed\n"); - netdev_dbg(adapter->netdev, - "Using Autonegotiation at Half Duplex only\n"); - hw->mac.autoneg = hw->mac.fc_autoneg = 1; - hw->phy.autoneg_advertised = PHY_ADVERTISE_10_HALF | - PHY_ADVERTISE_100_HALF; - hw->mac.link_speed = SPEED_10; - hw->mac.link_duplex = DUPLEX_HALF; - break; - case FULL_DUPLEX: - netdev_dbg(adapter->netdev, - "Full Duplex specified without Speed\n"); - netdev_dbg(adapter->netdev, - "Using Autonegotiation at Full Duplex only\n"); - hw->mac.autoneg = hw->mac.fc_autoneg = 1; - hw->phy.autoneg_advertised = PHY_ADVERTISE_10_FULL | - PHY_ADVERTISE_100_FULL | - PHY_ADVERTISE_1000_FULL; - hw->mac.link_speed = SPEED_10; - hw->mac.link_duplex = DUPLEX_FULL; - break; - case SPEED_10: - netdev_dbg(adapter->netdev, - "10 Mbps Speed specified without Duplex\n"); - netdev_dbg(adapter->netdev, - "Using Autonegotiation at 10 Mbps only\n"); - hw->mac.autoneg = hw->mac.fc_autoneg = 1; - hw->phy.autoneg_advertised = PHY_ADVERTISE_10_HALF | - PHY_ADVERTISE_10_FULL; - hw->mac.link_speed = SPEED_10; - hw->mac.link_duplex = DUPLEX_HALF; - break; - case SPEED_10 + HALF_DUPLEX: - netdev_dbg(adapter->netdev, "Forcing to 10 Mbps Half Duplex\n"); - hw->mac.autoneg = hw->mac.fc_autoneg = 0; - hw->phy.autoneg_advertised = 0; - hw->mac.link_speed = SPEED_10; - hw->mac.link_duplex = DUPLEX_HALF; - break; - case SPEED_10 + FULL_DUPLEX: - netdev_dbg(adapter->netdev, "Forcing to 10 Mbps Full Duplex\n"); - hw->mac.autoneg = hw->mac.fc_autoneg = 0; - hw->phy.autoneg_advertised = 0; - hw->mac.link_speed = SPEED_10; - hw->mac.link_duplex = DUPLEX_FULL; - break; - case SPEED_100: - netdev_dbg(adapter->netdev, - "100 Mbps Speed specified without Duplex\n"); - netdev_dbg(adapter->netdev, - "Using Autonegotiation at 100 Mbps only\n"); - hw->mac.autoneg = hw->mac.fc_autoneg = 1; - hw->phy.autoneg_advertised = PHY_ADVERTISE_100_HALF | - PHY_ADVERTISE_100_FULL; - hw->mac.link_speed = SPEED_100; - hw->mac.link_duplex = DUPLEX_HALF; - break; - case SPEED_100 + HALF_DUPLEX: - netdev_dbg(adapter->netdev, - "Forcing to 100 Mbps Half Duplex\n"); - hw->mac.autoneg = hw->mac.fc_autoneg = 0; - hw->phy.autoneg_advertised = 0; - hw->mac.link_speed = SPEED_100; - hw->mac.link_duplex = DUPLEX_HALF; - break; - case SPEED_100 + FULL_DUPLEX: - netdev_dbg(adapter->netdev, - "Forcing to 100 Mbps Full Duplex\n"); - hw->mac.autoneg = hw->mac.fc_autoneg = 0; - hw->phy.autoneg_advertised = 0; - hw->mac.link_speed = SPEED_100; - hw->mac.link_duplex = DUPLEX_FULL; - break; - case SPEED_1000: - netdev_dbg(adapter->netdev, - "1000 Mbps Speed specified without Duplex\n"); - goto full_duplex_only; - case SPEED_1000 + HALF_DUPLEX: - netdev_dbg(adapter->netdev, - "Half Duplex is not supported at 1000 Mbps\n"); - /* fall through */ - case SPEED_1000 + FULL_DUPLEX: -full_duplex_only: - netdev_dbg(adapter->netdev, - "Using Autonegotiation at 1000 Mbps Full Duplex only\n"); - hw->mac.autoneg = hw->mac.fc_autoneg = 1; - hw->phy.autoneg_advertised = PHY_ADVERTISE_1000_FULL; - hw->mac.link_speed = SPEED_1000; - hw->mac.link_duplex = DUPLEX_FULL; - break; - default: - BUG(); - } -} - /** * pch_gbe_check_options - Range Checking for Command Line Parameters * @adapter: Board private structure @@ -516,6 +253,4 @@ void pch_gbe_check_options(struct pch_gbe_adapter *adapter) pch_gbe_validate_option(&tmp, &opt, adapter); hw->mac.fc = tmp; } - - pch_gbe_check_copper_options(adapter); } diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.c deleted file mode 100644 index 561e71880c29..000000000000 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.c +++ /dev/null @@ -1,335 +0,0 @@ -/* - * Copyright (C) 1999 - 2010 Intel Corporation. - * Copyright (C) 2010 OKI SEMICONDUCTOR Co., LTD. - * - * This code was derived from the Intel e1000e Linux driver. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include "pch_gbe.h" -#include "pch_gbe_phy.h" - -#define PHY_MAX_REG_ADDRESS 0x1F /* 5 bit address bus (0-0x1F) */ - -/* PHY 1000 MII Register/Bit Definitions */ -/* PHY Registers defined by IEEE */ -#define PHY_CONTROL 0x00 /* Control Register */ -#define PHY_STATUS 0x01 /* Status Regiser */ -#define PHY_ID1 0x02 /* Phy Id Register (word 1) */ -#define PHY_ID2 0x03 /* Phy Id Register (word 2) */ -#define PHY_AUTONEG_ADV 0x04 /* Autoneg Advertisement */ -#define PHY_LP_ABILITY 0x05 /* Link Partner Ability (Base Page) */ -#define PHY_AUTONEG_EXP 0x06 /* Autoneg Expansion Register */ -#define PHY_NEXT_PAGE_TX 0x07 /* Next Page TX */ -#define PHY_LP_NEXT_PAGE 0x08 /* Link Partner Next Page */ -#define PHY_1000T_CTRL 0x09 /* 1000Base-T Control Register */ -#define PHY_1000T_STATUS 0x0A /* 1000Base-T Status Register */ -#define PHY_EXT_STATUS 0x0F /* Extended Status Register */ -#define PHY_PHYSP_CONTROL 0x10 /* PHY Specific Control Register */ -#define PHY_EXT_PHYSP_CONTROL 0x14 /* Extended PHY Specific Control Register */ -#define PHY_LED_CONTROL 0x18 /* LED Control Register */ -#define PHY_EXT_PHYSP_STATUS 0x1B /* Extended PHY Specific Status Register */ - -/* PHY Control Register */ -#define MII_CR_SPEED_SELECT_MSB 0x0040 /* bits 6,13: 10=1000, 01=100, 00=10 */ -#define MII_CR_COLL_TEST_ENABLE 0x0080 /* Collision test enable */ -#define MII_CR_FULL_DUPLEX 0x0100 /* FDX =1, half duplex =0 */ -#define MII_CR_RESTART_AUTO_NEG 0x0200 /* Restart auto negotiation */ -#define MII_CR_ISOLATE 0x0400 /* Isolate PHY from MII */ -#define MII_CR_POWER_DOWN 0x0800 /* Power down */ -#define MII_CR_AUTO_NEG_EN 0x1000 /* Auto Neg Enable */ -#define MII_CR_SPEED_SELECT_LSB 0x2000 /* bits 6,13: 10=1000, 01=100, 00=10 */ -#define MII_CR_LOOPBACK 0x4000 /* 0 = normal, 1 = loopback */ -#define MII_CR_RESET 0x8000 /* 0 = normal, 1 = PHY reset */ -#define MII_CR_SPEED_1000 0x0040 -#define MII_CR_SPEED_100 0x2000 -#define MII_CR_SPEED_10 0x0000 - -/* PHY Status Register */ -#define MII_SR_EXTENDED_CAPS 0x0001 /* Extended register capabilities */ -#define MII_SR_JABBER_DETECT 0x0002 /* Jabber Detected */ -#define MII_SR_LINK_STATUS 0x0004 /* Link Status 1 = link */ -#define MII_SR_AUTONEG_CAPS 0x0008 /* Auto Neg Capable */ -#define MII_SR_REMOTE_FAULT 0x0010 /* Remote Fault Detect */ -#define MII_SR_AUTONEG_COMPLETE 0x0020 /* Auto Neg Complete */ -#define MII_SR_PREAMBLE_SUPPRESS 0x0040 /* Preamble may be suppressed */ -#define MII_SR_EXTENDED_STATUS 0x0100 /* Ext. status info in Reg 0x0F */ -#define MII_SR_100T2_HD_CAPS 0x0200 /* 100T2 Half Duplex Capable */ -#define MII_SR_100T2_FD_CAPS 0x0400 /* 100T2 Full Duplex Capable */ -#define MII_SR_10T_HD_CAPS 0x0800 /* 10T Half Duplex Capable */ -#define MII_SR_10T_FD_CAPS 0x1000 /* 10T Full Duplex Capable */ -#define MII_SR_100X_HD_CAPS 0x2000 /* 100X Half Duplex Capable */ -#define MII_SR_100X_FD_CAPS 0x4000 /* 100X Full Duplex Capable */ -#define MII_SR_100T4_CAPS 0x8000 /* 100T4 Capable */ - -/* AR8031 PHY Debug Registers */ -#define PHY_AR803X_ID 0x00001374 -#define PHY_AR8031_DBG_OFF 0x1D -#define PHY_AR8031_DBG_DAT 0x1E -#define PHY_AR8031_SERDES 0x05 -#define PHY_AR8031_SERDES_TX_CLK_DLY 0x0100 /* TX clock delay of 2.0ns */ - -/* Phy Id Register (word 2) */ -#define PHY_REVISION_MASK 0x000F - -/* PHY Specific Control Register */ -#define PHYSP_CTRL_ASSERT_CRS_TX 0x0800 - - -/* Default value of PHY register */ -#define PHY_CONTROL_DEFAULT 0x1140 /* Control Register */ -#define PHY_AUTONEG_ADV_DEFAULT 0x01e0 /* Autoneg Advertisement */ -#define PHY_NEXT_PAGE_TX_DEFAULT 0x2001 /* Next Page TX */ -#define PHY_1000T_CTRL_DEFAULT 0x0300 /* 1000Base-T Control Register */ -#define PHY_PHYSP_CONTROL_DEFAULT 0x01EE /* PHY Specific Control Register */ - -/** - * pch_gbe_phy_get_id - Retrieve the PHY ID and revision - * @hw: Pointer to the HW structure - * Returns - * 0: Successful. - * Negative value: Failed. - */ -s32 pch_gbe_phy_get_id(struct pch_gbe_hw *hw) -{ - struct pch_gbe_adapter *adapter = pch_gbe_hw_to_adapter(hw); - struct pch_gbe_phy_info *phy = &hw->phy; - s32 ret; - u16 phy_id1; - u16 phy_id2; - - ret = pch_gbe_phy_read_reg_miic(hw, PHY_ID1, &phy_id1); - if (ret) - return ret; - ret = pch_gbe_phy_read_reg_miic(hw, PHY_ID2, &phy_id2); - if (ret) - return ret; - /* - * PHY_ID1: [bit15-0:ID(21-6)] - * PHY_ID2: [bit15-10:ID(5-0)][bit9-4:Model][bit3-0:revision] - */ - phy->id = (u32)phy_id1; - phy->id = ((phy->id << 6) | ((phy_id2 & 0xFC00) >> 10)); - phy->revision = (u32) (phy_id2 & 0x000F); - netdev_dbg(adapter->netdev, - "phy->id : 0x%08x phy->revision : 0x%08x\n", - phy->id, phy->revision); - return 0; -} - -/** - * pch_gbe_phy_read_reg_miic - Read MII control register - * @hw: Pointer to the HW structure - * @offset: Register offset to be read - * @data: Pointer to the read data - * Returns - * 0: Successful. - * -EINVAL: Invalid argument. - */ -s32 pch_gbe_phy_read_reg_miic(struct pch_gbe_hw *hw, u32 offset, u16 *data) -{ - struct pch_gbe_phy_info *phy = &hw->phy; - - if (offset > PHY_MAX_REG_ADDRESS) { - struct pch_gbe_adapter *adapter = pch_gbe_hw_to_adapter(hw); - - netdev_err(adapter->netdev, "PHY Address %d is out of range\n", - offset); - return -EINVAL; - } - *data = pch_gbe_mac_ctrl_miim(hw, phy->addr, PCH_GBE_HAL_MIIM_READ, - offset, (u16)0); - return 0; -} - -/** - * pch_gbe_phy_write_reg_miic - Write MII control register - * @hw: Pointer to the HW structure - * @offset: Register offset to be read - * @data: data to write to register at offset - * Returns - * 0: Successful. - * -EINVAL: Invalid argument. - */ -s32 pch_gbe_phy_write_reg_miic(struct pch_gbe_hw *hw, u32 offset, u16 data) -{ - struct pch_gbe_phy_info *phy = &hw->phy; - - if (offset > PHY_MAX_REG_ADDRESS) { - struct pch_gbe_adapter *adapter = pch_gbe_hw_to_adapter(hw); - - netdev_err(adapter->netdev, "PHY Address %d is out of range\n", - offset); - return -EINVAL; - } - pch_gbe_mac_ctrl_miim(hw, phy->addr, PCH_GBE_HAL_MIIM_WRITE, - offset, data); - return 0; -} - -/** - * pch_gbe_phy_sw_reset - PHY software reset - * @hw: Pointer to the HW structure - */ -static void pch_gbe_phy_sw_reset(struct pch_gbe_hw *hw) -{ - u16 phy_ctrl; - - pch_gbe_phy_read_reg_miic(hw, PHY_CONTROL, &phy_ctrl); - phy_ctrl |= MII_CR_RESET; - pch_gbe_phy_write_reg_miic(hw, PHY_CONTROL, phy_ctrl); - udelay(1); -} - -/** - * pch_gbe_phy_hw_reset - PHY hardware reset - * @hw: Pointer to the HW structure - */ -void pch_gbe_phy_hw_reset(struct pch_gbe_hw *hw) -{ - pch_gbe_phy_write_reg_miic(hw, PHY_CONTROL, PHY_CONTROL_DEFAULT); - pch_gbe_phy_write_reg_miic(hw, PHY_AUTONEG_ADV, - PHY_AUTONEG_ADV_DEFAULT); - pch_gbe_phy_write_reg_miic(hw, PHY_NEXT_PAGE_TX, - PHY_NEXT_PAGE_TX_DEFAULT); - pch_gbe_phy_write_reg_miic(hw, PHY_1000T_CTRL, PHY_1000T_CTRL_DEFAULT); - pch_gbe_phy_write_reg_miic(hw, PHY_PHYSP_CONTROL, - PHY_PHYSP_CONTROL_DEFAULT); -} - -/** - * pch_gbe_phy_power_up - restore link in case the phy was powered down - * @hw: Pointer to the HW structure - */ -void pch_gbe_phy_power_up(struct pch_gbe_hw *hw) -{ - u16 mii_reg; - - mii_reg = 0; - /* Just clear the power down bit to wake the phy back up */ - /* according to the manual, the phy will retain its - * settings across a power-down/up cycle */ - pch_gbe_phy_read_reg_miic(hw, PHY_CONTROL, &mii_reg); - mii_reg &= ~MII_CR_POWER_DOWN; - pch_gbe_phy_write_reg_miic(hw, PHY_CONTROL, mii_reg); -} - -/** - * pch_gbe_phy_power_down - Power down PHY - * @hw: Pointer to the HW structure - */ -void pch_gbe_phy_power_down(struct pch_gbe_hw *hw) -{ - u16 mii_reg; - - mii_reg = 0; - /* Power down the PHY so no link is implied when interface is down * - * The PHY cannot be powered down if any of the following is TRUE * - * (a) WoL is enabled - * (b) AMT is active - */ - pch_gbe_phy_read_reg_miic(hw, PHY_CONTROL, &mii_reg); - mii_reg |= MII_CR_POWER_DOWN; - pch_gbe_phy_write_reg_miic(hw, PHY_CONTROL, mii_reg); - mdelay(1); -} - -/** - * pch_gbe_phy_set_rgmii - RGMII interface setting - * @hw: Pointer to the HW structure - */ -void pch_gbe_phy_set_rgmii(struct pch_gbe_hw *hw) -{ - pch_gbe_phy_sw_reset(hw); -} - -/** - * pch_gbe_phy_tx_clk_delay - Setup TX clock delay via the PHY - * @hw: Pointer to the HW structure - * Returns - * 0: Successful. - * -EINVAL: Invalid argument. - */ -static int pch_gbe_phy_tx_clk_delay(struct pch_gbe_hw *hw) -{ - /* The RGMII interface requires a ~2ns TX clock delay. This is typically - * done in layout with a longer trace or via PHY strapping, but can also - * be done via PHY configuration registers. - */ - struct pch_gbe_adapter *adapter = pch_gbe_hw_to_adapter(hw); - u16 mii_reg; - int ret = 0; - - switch (hw->phy.id) { - case PHY_AR803X_ID: - netdev_dbg(adapter->netdev, - "Configuring AR803X PHY for 2ns TX clock delay\n"); - pch_gbe_phy_read_reg_miic(hw, PHY_AR8031_DBG_OFF, &mii_reg); - ret = pch_gbe_phy_write_reg_miic(hw, PHY_AR8031_DBG_OFF, - PHY_AR8031_SERDES); - if (ret) - break; - - pch_gbe_phy_read_reg_miic(hw, PHY_AR8031_DBG_DAT, &mii_reg); - mii_reg |= PHY_AR8031_SERDES_TX_CLK_DLY; - ret = pch_gbe_phy_write_reg_miic(hw, PHY_AR8031_DBG_DAT, - mii_reg); - break; - default: - netdev_err(adapter->netdev, - "Unknown PHY (%x), could not set TX clock delay\n", - hw->phy.id); - return -EINVAL; - } - - if (ret) - netdev_err(adapter->netdev, - "Could not configure tx clock delay for PHY\n"); - return ret; -} - -/** - * pch_gbe_phy_init_setting - PHY initial setting - * @hw: Pointer to the HW structure - */ -void pch_gbe_phy_init_setting(struct pch_gbe_hw *hw) -{ - struct pch_gbe_adapter *adapter = pch_gbe_hw_to_adapter(hw); - struct ethtool_cmd cmd = { .cmd = ETHTOOL_GSET }; - int ret; - u16 mii_reg; - - ret = mii_ethtool_gset(&adapter->mii, &cmd); - if (ret) - netdev_err(adapter->netdev, "Error: mii_ethtool_gset\n"); - - ethtool_cmd_speed_set(&cmd, hw->mac.link_speed); - cmd.duplex = hw->mac.link_duplex; - cmd.advertising = hw->phy.autoneg_advertised; - cmd.autoneg = hw->mac.autoneg; - pch_gbe_phy_write_reg_miic(hw, MII_BMCR, BMCR_RESET); - ret = mii_ethtool_sset(&adapter->mii, &cmd); - if (ret) - netdev_err(adapter->netdev, "Error: mii_ethtool_sset\n"); - - pch_gbe_phy_sw_reset(hw); - - pch_gbe_phy_read_reg_miic(hw, PHY_PHYSP_CONTROL, &mii_reg); - mii_reg |= PHYSP_CTRL_ASSERT_CRS_TX; - pch_gbe_phy_write_reg_miic(hw, PHY_PHYSP_CONTROL, mii_reg); - - /* Setup a TX clock delay on certain platforms */ - if (adapter->pdata && adapter->pdata->phy_tx_clk_delay) - pch_gbe_phy_tx_clk_delay(hw); -} diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.h b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.h deleted file mode 100644 index a80644b4fce8..000000000000 --- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_phy.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 1999 - 2010 Intel Corporation. - * Copyright (C) 2010 OKI SEMICONDUCTOR Co., LTD. - * - * This code was derived from the Intel e1000e Linux driver. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ -#ifndef _PCH_GBE_PHY_H_ -#define _PCH_GBE_PHY_H_ - -#define PCH_GBE_PHY_REGS_LEN 32 -#define PCH_GBE_PHY_RESET_DELAY_US 10 - -s32 pch_gbe_phy_get_id(struct pch_gbe_hw *hw); -s32 pch_gbe_phy_read_reg_miic(struct pch_gbe_hw *hw, u32 offset, u16 *data); -s32 pch_gbe_phy_write_reg_miic(struct pch_gbe_hw *hw, u32 offset, u16 data); -void pch_gbe_phy_hw_reset(struct pch_gbe_hw *hw); -void pch_gbe_phy_power_up(struct pch_gbe_hw *hw); -void pch_gbe_phy_power_down(struct pch_gbe_hw *hw); -void pch_gbe_phy_set_rgmii(struct pch_gbe_hw *hw); -void pch_gbe_phy_init_setting(struct pch_gbe_hw *hw); - -#endif /* _PCH_GBE_PHY_H_ */ From patchwork Wed Jun 27 00:06:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Burton X-Patchwork-Id: 935180 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="ey+JNsLe"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41FjrY1VMTz9s0n for ; Wed, 27 Jun 2018 10:06:53 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964788AbeF0AGv (ORCPT ); Tue, 26 Jun 2018 20:06:51 -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 S964775AbeF0AGs (ORCPT ); Tue, 26 Jun 2018 20:06:48 -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=t/B0/gianxTDMMaz8pQq7W5BUeC4o1QeiDIq2ew1F9E=; b=ey+JNsLeVK29UKY/C7xr6p57unjFYe+L8uhl1+HWQixGA1InwWnR63KRLsdDQMoz0+vlEuqP6dZvW/1Tc6AHSCDB5LuHKr5Bmi82MSwaaO47I7ppI7OwWdBFN8vEdo73PAjqf2T+OAeK6lo+pMbY2zvzdneZRM8n5ifoEOFncwg= 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:38 +0000 From: Paul Burton To: netdev@vger.kernel.org Cc: "David S . Miller" , Andrew Lunn , paul.burton@mips.com Subject: [PATCH v7 10/11] ptp: pch: Allow build on MIPS platforms Date: Tue, 26 Jun 2018 17:06:11 -0700 Message-Id: <20180627000612.27263-11-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: 637e2997-8ab0-4408-0306-08d5dbc1da84 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:wU+A0skIL3MvqEGDWrCBB0t0sOjXNtoAEKJhbUz8/OWJnFrG9pjw7Dgb+ajTCy7IIqpCX62YFaE0zewhlq1IFKbdsGmYOhuqBPpG3413J1/nS3s6akJSfJlgxtWSjNy4nxyrU3ha2FT4tdwD0iHSs2937+Oi3mQxIbPtTegIssMl/KYYyfyDG4/+IDsBY5EKU3/3a+/XyUEuKMkIVKD+H9tH1x/0WHo7u80Y/tyjsVVhsmMaiz7kAUDAqvmLdf+I; 25:2hdOIaJFdhiZX6fBaBWmItLiCfZATgmKgWXjqE3jc385nWmEBOQ28gfxHoXi/BFREtCrOjUhXBDBmm53lfCXHCm690HkJVJ7386DlqX7UMKLG6SO7zk5T1a3PENvxadqmnyiy/2xZj5WiSZt2I4bw5g2vG5vKW4tw43QYivLc94MFZALghbch/KPqmFJk701vEf+UYevjralR1Cm/artmX+e1EILqO6A+nrP/5b+CTYBLVVM9FWQVIu5ePHYNdDln0bVWOTRd7e9CLa5afDMlQdhTNN5ONmKf/dtmd+7e3t1nZ4CLIMKkO9CYEveSjgcK9tx2WlcQk9kg6zyo8djMA==; 31:AAh3WMpObzVyhXX70K/rOKT4vkFBBUn3hi4ktJhwv/snjz6w09OMZTN5nXWFE8chlxcRo7LsfbWf8p6+erYvEjLThEVcJztl17rJETA6p68V7q02StzThWq7xEAOBhqPq93D7AC/YpcJuySykxFcVjWNIotKEvVAlPj5wRI7U/m9pZvcofB5qD4J7VPqSi1Lc7YJk5u02IRh2YBm6Fkw1V284yWAudF2VYtL4WTmphE= X-MS-TrafficTypeDiagnostic: DM6PR08MB4940: X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 20:0hDSR2O8GP/JopG4FdSzh0L+h807+oKD2wdl8BhQZHS40mg9mTXjS8LlcRIaCDUMf54d7w1cYPGev58e9w3mVLa/uEGlYcoq/kdQ4WwTThe+vFlNi5qJ/c2zoiBoCdsCa3SSTTjJIcOjlTARQpLi02fTWvIaDEexLnhqan4WG272+p231uremU7/1zXdh90TSQyWaAIAPeg9uNgZSgUMf88wsyBEdDEaw5Z5eyHuQ3+xpbzewAIC3/w4EHnweFPp; 4:8KZgnec05UqtrN5jwcSOCDuwVmCsF1eYU2ms+TzsBw48J/OMP12LIYyz5nrSYM2WOPnt2fiJbT9tLR8Ushm+AlxdRa9lZdWIBWrstcqoAN61LWIe/QJBbEGuSVmcfmAJiyO0MZgEssTR/OZr7dW8l0Z4R7GqqUlYoQDiFeVj/8WLXRVIaEBG15BOFxle8ileHFozlO6NIG3HIXjsS+Hr5EWUY+lCQPqWVu4/14KASI6trnI0HLkW2uc68mnsgTzazlZUVeszWv3+AMVuDfL2WATe1SP363DDIIKHP8W6davm77CTJ8e0fTWUWNCxLR7HphKVYnXyK493LQIaaIJyt+SM6FhIO95ifDgn6WGGm60= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(9452136761055)(85827821059158); 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)(88260200001); 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:aingNWSO9L6DLNxDwGa+UWI0S3E/UWHztva7Azicw2NgqiPxEMdKe7SxFTwygEHrTba3XCCAtpDKk/J/meF4ygqijbZL9GoGP77x2G0LIKRh1NFh/vfM2tQqZxCSvuu6qoVU8vrmZn3hh05/w4R8Msj7wxa41w/a6i16J78sJ2tpWXKlik3OxGsy/ycHQq0lp20aNSTfa0DzJwNxG//ceGGsk8xXShDV5Kq+ycyDInyD6wNhjgqKFxX149g2yJTvXHa2saoRPhFchHVKq5h0uysOWoseFqzjkwJD8mMaSM8Re2XFuo4j6xz9q8Pw1z2MSx5hd2wnQEvD1GmtA0EV+Ul42PzGwcg5W9Il46i2aFKCxt3RRmOVQHJdAzjFmmy3DnGN8W2Xl9f7Q0W0ElMwZoXlWKZCuPyKxIkPlIdQuayY6mtfPEeYd3ahu645S6LQrA36VpPQzF/lHVbhNqckJ3i3U/wVVGSz/MQWJlQNBdnQzWIacgRLL8zy1r3gPCGt2kPtOCTKQ8bFtxecW65O5V/RkVR0yoYFtKVhoMhhDR2XkerBGosVUJ5/gF3dL4c9JFGdvlQQaTPOfisHyPgYqX36Q34jACk/tQ6PdKtZMoF55GOzdeSa9us0iCqL0hTfFnR+nGIquP/OfVvb/rju86jZlA7WmhwOuF1XCaGFwJWDjweaqIXLDFICvojdfhDxTkZt8u2WQIV13oChvNfU3G1vVfJGrqGtEW1KdK0s/WU5N08VrH+UegB7H4SBb9Sd2IhI6GoHmQvsS+aXHzfNPKfjKILXq6EWQ3Ui0D+Z0xcJPCyKZ/uL7QXm8bcvrMOpsOY4wFWu4XwR+y6odLoMu3yO+78vyw8sEb7DIryBTTlBPdFUxevv0S7sVa7HtHzW3P4mLfCQ4Bh4I5EpNtfvEK+Cw3H/OssIMGyIGzPAcx6ylzkOy7GEQWRU9FW8ZtwJWESZ40cuVr6QhS3wzGKQwci2tV4jmIIaAaduTnEpEcvFYEb8U2+oO6AbdN0hs3CSaud8zc2R+HlJSTBATCpgQYOMXHGA1+0hJpHigQFuC/BJX7M1rleft6iz21x1XGI28Zi1eCCSpTE5w1YU2aAL42OlcbG33WzjnArhR++EEfU1Y1ZBlBvgmhR0pKuRNtD5LGAPutqEJxIKEhxkY92VMQGaGabq0tYO1c47A2LdLahseGGmpURKA8ur2Q1wh4OS8JjCw/mW6OMSFulk8d0uufZLiDMALRtohNnS+HJf+QiIvGc0o3bbRs+VWp08CWDNZswrIB08JyFJh2YLcXMOw49BAh/Et1oTL0fnhzyK08VH6+hRTEmvkUmu2Xuishw6+VUBSqQYgKDHWYTQe8grEJjYtRTZAP1mmANYFu/61YE= X-Microsoft-Antispam-Message-Info: 3xmwMHba7rZO4gWXq9lvH+EpZqCjKBtl2C48bG8HmqFh9pNSyf7edAWiSFTch7i6ot1QL4rtMFgyeQAMKfxZ6RlkCFUomQRE0kKmjLFXmwW/JQqhUBgylGIVF6pFkqDx8w1ElrCIw44YwHf/Mm/9xWlZaVvzzYX0m8JUrKpcF/XH40SksuJGX6GcxoT+v5qXSKRsgTvKhdpiud51R5hVC5sXr0Q6+VhNcKBKoNXtBJCC4TLYfEH7x2kxrlfqHWoFC4s4eVOQreZik5tff05pj/6cYsMrq02iOKb3e6s4R2gjc/uDwYuP3eBNWjg/srbPLs6VDiMf+nrnqMyUM6L3UVuL7jtsdu7HYx5RCsOy+w8= X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 6:Ukh7JQgDz7Dc5qT06jCqNZsyI6leqt0Qj3SLb/EUP5Ts/hbEQOBbRvgFeE3QHwjXj/niLJZ0AIMtXw2aQIxJpqWMy1Q4dc2DnASFRpR6eP1V2hFpZToE2Up1i0CYPLlDVCNeBUBXpSm8uMbxTC2dcVRJCk3btwGpQvDjTWkK2AgiX/DRz+EI74vfemIdcZA7fPHe+RhGoywW294x/wCMJMc22Bm5lG5T71vMRNwng2hi2pcIdowSqP0SJx3G01/n9x2AgVy3bs/F6pJa6fw9DBeumMglhXJMYSA2JBmaw2SGOsPcf49fzYhrkVNbMtJyQ/KZpNBRIgyhomeMcIkzbe5EPP0b1hdJEMu58EQVVrVklP1zae0yBuhI1vPqFW7tl3Qgx/FNP5s9HltoxFtvK3gnR/xEIOKOU7KV5pTkm6XY8XbxsJgtLa8nFdsh40VerA1zErFfUOTV5cGxFMa9lA==; 5:2ouZq/0p2bqwYOWXxWQcjFaqkfZS+dwEr/6gA+4Xrz2fRgrFBqKdunDaRXm5AAuOUSpLYpnmVS+yxHesStcsIEGe+JCh6D6rIqupfWhSPGyrSQPc8rMOyvfx5Tm1vWNXmVE8fc95j4BAkBfYKFeJ5EQLIzzefG0+jiqOqnuHPP8=; 24:cjMDNYC+LpnwXHgN2bc1S3jxQKkCA+db/52whloGLdPU31GQlUJpYcoEJNh6uKN1nRGVDUTc4XiJoo8mJpD88KMoN+UVOp4l3yL9pfazfb4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 7:DchRiPTMC/EpEEjNUqZdrqWVJtFIuXYB5y2ojOz1miL28ux9pRoZu8u6E+jNK/zpv4qFigZ50EFinIZkeEJPvFcZsUxuPUTHTuOmrVoA0LqSgLwoxQhh0gHm8N7XLzvtuRmXDELf+lTxDJkDv3OCE7fyKSbkpjo+Ugy8bR7tgJmpEqqpD4u4IuZHylZP/HGQJupAyko6CJQU9nnxHmZnrz7735wL2LX9uvJvBR/QiHb9BHtcPPEHnvIK7Bg7GfDt X-OriginatorOrg: mips.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 00:06:38.0476 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 637e2997-8ab0-4408-0306-08d5dbc1da84 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 Allow the ptp_pch driver to be built on MIPS platforms in preparation for use on the MIPS Boston board. Signed-off-by: Paul Burton Acked-by: Richard Cochran Cc: Andrew Lunn Cc: David S. Miller Cc: netdev@vger.kernel.org --- Changes in v7: None drivers/ptp/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/ptp/Kconfig b/drivers/ptp/Kconfig index d137c480db46..fd5f2c6c18ba 100644 --- a/drivers/ptp/Kconfig +++ b/drivers/ptp/Kconfig @@ -90,7 +90,7 @@ config DP83640_PHY config PTP_1588_CLOCK_PCH tristate "Intel PCH EG20T as PTP clock" - depends on X86_32 || COMPILE_TEST + depends on X86_32 || MIPS || COMPILE_TEST depends on HAS_IOMEM && NET imply PTP_1588_CLOCK help From patchwork Wed Jun 27 00:06:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Burton X-Patchwork-Id: 935181 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="A/HMdsdJ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41Fjrg75L3z9s0n for ; Wed, 27 Jun 2018 10:06:59 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964795AbeF0AG5 (ORCPT ); Tue, 26 Jun 2018 20:06:57 -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 S964790AbeF0AGw (ORCPT ); Tue, 26 Jun 2018 20:06:52 -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=wcZaW/0hYfuYMb4Y/4jvZL9x64Ip1bMmCyFMoFIyMd4=; b=A/HMdsdJm2Jzh0Bn3KaBEe1REBrDWThLPWgWexongk4XIpOT86zaswLeSiQVcoBCHLSht/fGXikStBvQLkn/0ho72hRanLxl+I1c4W+fBRjnO+On9j9BPDkWr6N7ootfm1crf49pSFoxv/tJdH9XPeWRe2QKBKkm3Juv7reP0ZA= 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:38 +0000 From: Paul Burton To: netdev@vger.kernel.org Cc: "David S . Miller" , Andrew Lunn , paul.burton@mips.com Subject: [PATCH v7 11/11] net: pch_gbe: Allow build on MIPS platforms Date: Tue, 26 Jun 2018 17:06:12 -0700 Message-Id: <20180627000612.27263-12-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: c90d95f4-a461-402b-be05-08d5dbc1daf9 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:HGGu4A/apO9mVsjFrFJQsqb2sai8p97vzxRFGgVu43UehiTQ/7EoYnrwkDaCPeX3HlTB6q8Az+0aRzsSDrYqzkaPNUC+8TBOz6go8Qk+kYHOpvGUZTYrBMkHSHbLa2GDe4Ad+Wmg8PBdZD22jcv/9ceaZ3JWvVgeVyPJz+K+VyBXDX8USK61JpsnD/4jzvzortttmEi8nwgpb+6VLXFcVbv5+rhQW4rpMLs3q5k86C55fZbgVSE4QcSCX1ev12yN; 25:Tptm8d4lozybRZvwadOtLOij/MkFxaZBNTGFcvhgNJOA8CL6z8oFO7qRaYLQIAm9UpXObdCSwb/IMatOOpSqZ3rbGJs+IK7Kjm20SmnBDEAkiQKJJxrwuC9356Zh6lHOkClFNj2q/jt3zYsu9RomXDshfXtpyZE5xTzp+lNPWk9vSAc5oL5c14wQjhUR3T4kxJ0cPIurVoeI5wmHJeFYy0ymNTzgSGY+LyBDsjgRXTPuQHjm6x6QEZa9XnWiSoeRP5UVEfs+9kzLGHopX9M+aLciKIDVlum/KFOcY0Qiu7cVRBpumaTk1NxocLVvoZVj95fqwFeCc1COuF+JPys2hw==; 31:i99d+rg6lj4lToP7PnXyMezYREYcjRvI36zNUTwT2NXMwsCNICsLgmcqnFMDd6Xz8xGnkHm1AVGRalfmLzn4Bv5mDeEaAt+gwAUWPTD/eBcYlwkrzSxzAHQveNopyvdKEjNlySMZZTVzc5AHORFknZzOGKKo//qj315IAKBwlHralA7KxOno7Irr6//oD54IORIq+GjlfHqoC7zjL6KYBjuAbeTVORrvACaQNjMv4rc= X-MS-TrafficTypeDiagnostic: DM6PR08MB4940: X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 20:zCn9YS6auf08zuPV4kmOIob/ItrJoFTaXZ3jjG0hDsZ9cj5+NT9NMgvdLDqvnaOyHzirF98rlwcZGN9Ynv4bjXBFjFYSuFVE1ypgVzP0Bm1ljxWiOX6jWVCFq75h6JM2wEe9nMI5wWV+huYANel7pfRx2qZEwOy0HardghVhH6Ffmtc1AE2rvO5VyXiW+w2Nj+K8zIilFQ8lkLrXD43pa5UyzSGLkADtjnM08XAIU1lDXPdZQL6iwI0F9Lc+SkUQ; 4:bbsKyKiwkq4lILIHI9H7Lbh1/88NmY1AV524hFkjfmmRTb9fvm6Cxfkxko5okAtE1kIq28UMLbbr8BzFywDG2EoP+Zz+o9i+Z3GOqbCcMW9G8rz2EOdsPn1f0Hl/eSX/X3mo5Q2h/tEBdQmc5dUBW/H1qytOhwUJeAcyahx49P4WGvObwOj9r52NX/L6/+1CM+iBLYDle0UnuyGTTBezu/CHhzcfK3IYsU9jDRQQlEq0jPAltSC8wT3uLtEM/0mSii5lzrlgUAKTBk4ABVBrfUvam8dV71FNee7hGyLflaVvpkt//cNGywu4J9vtRLIc 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:fcTECcdcvpzZxuy39tVk5Yzy8r0GOCdM8ow9lu31JCxQJxYm+8qX3mxwzObVl+aWrxQphnyQVwi7w5ykxFjSyIaSazCiLJ++bITa+emc5cYmN4W4BPiKA9//o4f5cYPP9p5K30meVgXrLW37D65+VnhJq49V4Wa8Z34w+2nd5nedxfI9OyxFbehzUJIWpGphlXWlW0ng6QZzMdCI/ocTUfI/BS8Q4H3/DiF5nalgfwk8oIHHweh/nrE5lV6KnqkqgUNZxLabjG2UujghtM4WQf/YpFlwcAvxuS7wpIBB9zjc46qqo+f7lpJig63SJ4zdibpEswbw9Eq/kQispm8qE2dgTOOihM5cOSSmNBbitQIkswfmOFvNYOChNZcfr8kjFgMoEsSizVI6kC3xXjbNlTA28j3P/9yf2/f8sbi/1WoC7D/7pF+QaL5VXY89BPpuoeKHaM7EvCBx/sXYDS8db4b40nuLyNagxZVYwbbO/6ZT1hAVTFskKElQ8ZWy1wgLkA0ZIWM2EVavZJGHhQrMFCgkxtHE3fSyZKYzTbLcri4n0YE3ZhXVLf+KhupoEWJAd5xzJjq95s8dj0ELID98q7B/QQL4DCi+6kLvCU2Rzo045hEXZ7cL2BWhPiPx9dTSSG/1YTers8/UKTT+XlHyc6LJDupfWcawkeLixz94JbnMm+kc37SnuF7Jvssu4N7emlXX2C1HWhzrKceaPhkcHaVKGFGwHV139++v9blAA/g2s9J6xkdnIImIfgXZKf8nA4xd7EqEJQrArAUkaBFQ36k03CEExhvzD7KlJ2SiKStiarqxsvhRD9XhVtrLjjaOve/6U8KS99dW8Nj8lWtfIfiTlrkmR+9YjYGMu3U5HRCsYge5lOpTlq7luPeYTeqWT6QPxtKQZQgj8ySYmZgDOfqnPnfp/ithggYfEHUhLsww7oaD+yzq1GNJBlYfGGEzt9GepjROAj/4N7/w3tc4LCVrHJz2p05WQALnQTtZE4q/aAxNiFEBZ5jR19zdifJYWmgIGkoW7nbT7McjH58FXyc8QdTE3QvDYHlWbGwfoCa/cxNqHa3Vq5ShcTanyPRjmAeNpOC+OA60QcW+pWNB+7oPsQaOR14IPw1MYIzHrjcvO5nyNYzlJRyBSKo+Xe0ZuP0FfYEPnTblA5CGBgpohBC++Bbl4Y+tdaKwPEJAFhirv8jCbEWd0bPVT10Ou7vTyyaV1SQBIWJEMO3jCoqVdiRRZCFFyEEtWXg9IFVa5d/ld90sQ2Urzuy94rt5kz+43U7Xlx8k8fGEt8JZLtmlUpl33GgavI3DWNsIi64cOPVTDrvULfuTCcKkp1UetEFJkCstRFHRmNVgITQseb+2FA== X-Microsoft-Antispam-Message-Info: I8RXHCIMtktsWkkSLxyRQTJ8tC5aA0RJe6H+Ue2cifvpkuoxIx/esFHmMp9gW4t5JvDPJvypLNJS4Tjf7tS4B+yky98cVVEpau8U3ZvdiocmBJQI0XeT5w41JH2LBV2jcE6mUkbOLEmRNSnfSNKHsNqTCZZMBHnNi704nHDKnflWufC7ilefCQ4aEFqYhJcro3g6/k1juecu0AyCFysk/B54Tukr44wSuG8JD20/7OH6d9bfb18UuosRi53GzwBbjAl7wxwmV5KQnKtEvkaOGJgNXgiWO4QGRACa9AGCqv/owuxLetQ/S5o6fHA8uiTHe79GiEiOZCTXbqLlcDOJbBimNne7QLTQYr2UFjdY9GE= X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 6:0zdMGS0ntis+LO3k5ZjhLKrg97H5kL1mnXaV/jELKUmW31HN8CnzN2Rp1Q9DUTbC5D+Yw1uXZv4eUkoeb0ZYCYFxzpUpEtd86YD7eosJnPqhZM9ICrwxu7p5P0lxWvRNRnWjDTFa6uZy+ULrVvLyahTYe05qOtQQzeXl2tZKiteSjxFVgSkflAvYI7kO6Tbq7JneZd87WrbDqaC0vEnVahFARCvEmt5ycVSZVZ27Kfza1xartRo1hOLSGDZlJTveKnRsY35Xh00nzHi3AO+47sKTsUzeQ6WL23G8SYYwBeo3HwCu4iD1kKmUO2wMb7t+za3HJHE+ldCUjRsNT/OPj1Hvysbgf1O12FoHYEI36nnrMz2kdQkw+Vh3LVt8p5cPNeALssO9heycjFqBbIdYkCHdW6IDSxT+Xw+8BXZ4vy2EmrpnorMr2GCt0rFPdjUm1/gPV4jpsUfi1nt8ngyn9Q==; 5:Jac6RNQb6TPa9UG4ZaKVMtRBrhns9mKUadFSV51NTTbEuL8gV0iVuwbODZyynGwhvsHy0cKyc6BocwVYts2gH/NsWKA4lV7E3jSYfQnPFCHkowjoJZtVXNnYGEyVogofPrn7yeoRFWvf0i/9KFhLfD9p83EGsnrFbkM3kOuiWQ0=; 24:/shJMqNfaEkheNLqCMom+acN8Ost/s/iloJ476h31lN/Fvnf9Bj1JqL+dD/HDKPpQMT0M5jXFEJ3MHXtYnIAdAwEDQs3kPGITNyPmRbKKPw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM6PR08MB4940; 7:7poVEcpsT/OC3QQ9v1Uq8I4zlG9oACxMF2DbfnDokREZzCnr760MTX4YK61Wl3+zuOwssDl538DR5jwnpURiT0K90rtBHDTYGBrjRs06G0gE8wtwS015mHmOab2eT/YdnpfQReWCQZKoW3vOhuK8+91wIA6G34qdpQnHF2sAJVfGyMFpF+1LnlLjx2A928FjqoeRPsJy2M0zuzCy6ed5RWviP6Zptcy+cNT2BKCKstuzvH6+lPJcCclAnVxckUGJ X-OriginatorOrg: mips.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2018 00:06:38.8191 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c90d95f4-a461-402b-be05-08d5dbc1daf9 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 Allow the pch_gbe driver to be built on MIPS platforms, allowing its use on the MIPS Boston development board. Signed-off-by: Paul Burton Cc: Andrew Lunn Cc: David S. Miller Cc: netdev@vger.kernel.org --- Changes in v7: None drivers/net/ethernet/oki-semi/pch_gbe/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig b/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig index 5276f4ff3b63..8e3630b9a9d1 100644 --- a/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig +++ b/drivers/net/ethernet/oki-semi/pch_gbe/Kconfig @@ -4,7 +4,7 @@ config PCH_GBE tristate "OKI SEMICONDUCTOR IOH(ML7223/ML7831) GbE" - depends on PCI && (X86_32 || COMPILE_TEST) + depends on PCI && (X86_32 || MIPS || COMPILE_TEST) select PHYLIB imply AT803X_PHY if X86_32 select PTP_1588_CLOCK_PCH