From patchwork Wed May 23 16:39:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 919187 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=amd.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="z87nInQf"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40rdXZ4g87z9s15 for ; Thu, 24 May 2018 02:39:58 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933755AbeEWQj4 (ORCPT ); Wed, 23 May 2018 12:39:56 -0400 Received: from mail-bn3nam01on0043.outbound.protection.outlook.com ([104.47.33.43]:27808 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933567AbeEWQj1 (ORCPT ); Wed, 23 May 2018 12:39:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gaxiUdT4O7VuNho2XoBxPanVv0R/TmbS9A2Z+ARP76g=; b=z87nInQfluVgJHwkE6AvxlAAkBf+cwwJUbcQYYDQQvN5m+2Axp7Z4edUc6GKFjMym2QXuP4AQh7m9N38/FmF2kcJL0XSLGwXvwxXtt5EF6f66q4m+LyUoDoOYsCNgpwkxQ74GiG3U72MwEPJL/2F3eCIgntcxUObZ0qBMvYN98o= Received: from tlendack-t1.amdoffice.net (165.204.77.1) by DM2PR12MB0170.namprd12.prod.outlook.com (2a01:111:e400:50ce::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.776.16; Wed, 23 May 2018 16:39:25 +0000 From: Tom Lendacky Subject: [PATCH net-next v2 09/12] amd-xgbe: Always attempt link training in KR mode To: netdev@vger.kernel.org Cc: David Miller Date: Wed, 23 May 2018 11:39:21 -0500 Message-ID: <20180523163921.31625.495.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20180523163802.31625.76572.stgit@tlendack-t1.amdoffice.net> References: <20180523163802.31625.76572.stgit@tlendack-t1.amdoffice.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN2PR01CA0069.prod.exchangelabs.com (2603:10b6:800::37) To DM2PR12MB0170.namprd12.prod.outlook.com (2a01:111:e400:50ce::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:DM2PR12MB0170; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0170; 3:yVVB7gdvId6DO4DkgPqcOVVg3DIxei7RvCzGCfrF3BxbGXDMZKYaF0UnwNV0ZK23gEM7jjRRIs0AnmX3TnPiEtDH3DmELUGrZwx55pZbM5ILNY1XrrTsYxMAWTd3AeKVksttrNzQHeoq1+DFxLjihN+Sy5k0F1k07fTkBYhWjG8GhZEp2i6hCtzYYOY/wbIDUPn+tehGEoE+DdjTugpQ09wCWolbZDW1JXafoSi9X+E1Xj8rOur5kLsTxCKg4tdb; 25:ffuwotQb1W89gzmHfZYazp0Ybr6+JIjK8zHh7Uh9WMR61lDEg1lK/ENitf4r8HygBdDObeMZi0s083Ji87US53TiekNkT/W0TgaEbtViPYibgaDq11+9tOH6eouQ7VFE7XHsFLTZFPXpiBA0/ADdwLreZL8u1c3vzOG2Grh4QkS+pput3vrTXVIcsnq2gRSOM0QzzDw+D8mRA3CCV6rzEkEy9h7IQtn21oSnBgEuQfBQWAGqVNxsU14s52KBiMymnIonIin1O0U95vAFUI4+OFki4fS70OJBVXVt1vD1STwyWdetZilX2CA9/tHPDAo5msSfKMqELnCvEnN/luzvaQ==; 31:2cSZKOb2qVs032d29d0TVgwYblFdCdEzZh/w2isppyQuuVyreNuYEdVrA2ygqn5x8V0n21UqZaY4CmQvbbHQ18hbUGp7X86C/3aavk6ftgfEvdG1Nt9zl6CbFLIYa7uc2+6Tt9ZHnyFJG7xox9Qp74FbIU1CeFn/q2FqkM5GrQhBY0pd/O0/cTxKAyrN5RTbgKUEkn92FVzulXuISY0afycAwPKs4m3k3Fd0HoJXbiM= X-MS-TrafficTypeDiagnostic: DM2PR12MB0170: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0170; 20:258AlMjjpK2XGyg7yGSLp2DGwsqCIADJG9RW6YsD/8OsCcw4slbcjfz5HN4VsmTW9Bc7lpiKmw3iJ4sebwXxtoL5uJB/wB/iKPwpVwJqU5mbSN87d1RZaOgXUrpEj8cmz0wrcLsAYsvUIoTkfVecEuOn5ZS6TeUYyHPoBceGJX6NkFnMGSTK8l0xvlZcAoudZQQFCEYbuUo/XUKpxd9cDOlxFh0X5WMyaZCgbfSQZzJGxAU5GEg+py0voBtzi89ryQp2nHmqXvjzOOcN/4IDw946t/GffFz1D8sSBe/0/sah7AGJ9elu1Ee5txsf2kpyiybRbg8HyAaGzck5l3Rafu2SSKIXhN2pf8ia06n3i7zsGrPegstGXWBt30uGrlXgKPVZ1Ffqzb3A0W4r2J2UqAADc/bK73QQuUMOivdoLU2jFHB6xxhzMotStytvGL9slABL5ft4kaXTHrx0FQSvXCtw7Sv2CZuzyNzaR+rFMA3Os249LM5kn0MIjJWTqEdI; 4:uFHb+bHjRKeQCkeax47RFbmnMkNHFcs7YlnfSxmKQXC8aoht/d55kLZYBpEq8bZXo+xsVKA78ex8i8qHp5iuyKaKhUXhufe1HF9HxHaMNr44rsHbLvt+uEPO3WzNM+N5bCDwN7JNQqmAtRlq5W+taEpEJR27fpf44PC7vVV3a3K1Ol/+1owdA9Shz/Tt1mQoL+bUHMzhdIFJODxPJxLGEw3LL6r2hV4/f2T3hzFAhaQEViZclZXSIHe9hQRod9ZQMH7dwNtQO3mdQe80RaLpqxQfCj3AaPVddD1smuy0gs+jaIT26DkeLIHLtzxbIAiv X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231254)(944501410)(52105095)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123560045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:DM2PR12MB0170; BCL:0; PCL:0; RULEID:; SRVR:DM2PR12MB0170; X-Forefront-PRVS: 06818431B9 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(376002)(346002)(366004)(396003)(39860400002)(39380400002)(189003)(199004)(58126008)(6666003)(69596002)(97746001)(105586002)(106356001)(103116003)(9686003)(230700001)(3846002)(478600001)(7736002)(446003)(6116002)(86362001)(53936002)(8936002)(25786009)(68736007)(305945005)(11346002)(316002)(72206003)(23676004)(16526019)(55016002)(26005)(53416004)(52116002)(47776003)(8676002)(81166006)(186003)(5660300001)(2486003)(7696005)(66066001)(956004)(81156014)(2361001)(1076002)(476003)(4326008)(486006)(2351001)(6916009)(59450400001)(97736004)(50466002)(386003)(6506007)(2906002)(76176011); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR12MB0170; H:tlendack-t1.amdoffice.net; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BDM2PR12MB0170=3B23=3AWGrX?= =?utf-8?q?yrKKjftrFDvEblCoEj1ALKV7xecgBzeK/nAlAqJdMc8MYgPGFLg5wkFa?= =?utf-8?q?t+9E3aGNDQRMtNMmNKYHVEyGTstFrQXhiiAQszR+2MnfHoFQZkhaf2oY?= =?utf-8?q?Ofnzcitbv/HvY2t3uNvEA8rFhnRctyOLlrFtbAk/NlqgH8tsUEfEg+4I?= =?utf-8?q?QmUagXITV71IRb8GclT8JGNAcd0MXAE4FGv6lTQiy3goSsE8oQwW7Nex?= =?utf-8?q?1qzqG2ZHsyFm9My2rEoFW9pDKEZwLVw3cXMoOrn5CJFd17Y2MH48jH7D?= =?utf-8?q?vyuUxyqBJzI+I9irl6B1HZDG+sPcD5PJ66CV/pD8o6UBVKVDqUFkWsBf?= =?utf-8?q?AujbW0vz1dz69V3kkuRz/XvJOTKnMgFpYMIzH+EA9dBoYmAK5faSMpfi?= =?utf-8?q?zHHKJ5D0I8NJLYa/T2/zJL2S4wsds2L4nPWihup3oH+5wAuLI91h2bQo?= =?utf-8?q?yaVhkz4XK9Kw7U9/kOCnP+ji0Hdri2VETI1QINQKZIBPOkCH0JksV+N6?= =?utf-8?q?iKL/mamEslmPP0CzSWXCTVjwjcMESlWaKOKu2HcyYBxejORoP6i0Nrr7?= =?utf-8?q?AhjySstFHgMlmPVblj7p1Ie6D5OJIFQ7l7pDMvaoZyPAXdAeSvIO+f5V?= =?utf-8?q?xZ6Ah4uhr8AuF0GtM832GrL31euYMci2CsfsOt1WY4L0FCjjCHN1x+X6?= =?utf-8?q?1AxYpsr8/F+zhyQvcmY59vYibSJzwqUNRCqWG2a7Clo2tx4f1DhL7QtX?= =?utf-8?q?prqH0l5eGPZYVnvsPb8eB8MF3QeSnSKC62z6RCuwYrZ8zuM4DOg3QSsR?= =?utf-8?q?OChoMpFz0C00q2QMasLXbbQhRM1OwA+Ik0Ybg4NgUEmdDXqakpLw/yLD?= =?utf-8?q?eWebl+K2gwzw5FcsGeosGODAgET3kc75DKZOzBKIjBS+j+e+SVi6zVjc?= =?utf-8?q?JiqM3WKsP6MkEqLm8pXbUU6m+qtblvnFE60OGE1GKZ1fH5hVkoDEEhii?= =?utf-8?q?C3NsKDIPBBub67UeI0jlcjk/UjiACrQkYKGg41gBnaU4Obsc8YteeMFi?= =?utf-8?q?rXOXzpT8WdWlhCZw9gmgrsnWKHAX7iHpgqiIfReIi2xAMvwv9uhv/494?= =?utf-8?q?hEWBy8jfxO2BmetKI0iCGFvXOpdlWSfGi/PLuHTD0sl2MZfvwiJBhZrV?= =?utf-8?q?N4R6V8P/3L/fL7mq+2CtB+OBNf5zyFQ783CxuDQt6dN9MnKUgRK01BMG?= =?utf-8?q?vz/O3TLfrSoXqia8jUYnM6HgDvgeBYOz6meBKQwHd7CBCbHFmM1TZj5n?= =?utf-8?q?QYBmKxjZVUGhC/pBzsOrUrxvy/VDYYsU8ogdAaENOlxetO0MdA3Ygf0L?= =?utf-8?q?kjz3qMCHrlBEusBAHavkjd6kZr+oTqLQeNmUeM+UI5O7H4By7wjvUWzI?= =?utf-8?q?KMonhJeYYRQazY4TGQ=3D=3D?= X-Microsoft-Antispam-Message-Info: X/czxQ1GIkpGmQwiO4+fvuYfUaKZM3+GkIGgWhzLP6yla359CA9P9F/Aya+i1UzvKCjt/xjS4rDmeXoZKrwQjHjSxjpDeW1S0Lh0rCb5YAVuZTinLA46gzBQLllEftDGYP3/YIvo1fhZ6WQcYZR8ey6J0sKPgqgpgnyUr+cst/xfR/wKvMTSNH1H/JiE9qp5 X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0170; 6:Tx8F5ZCEsQji42nhg6I+RPo0D8Ys9RUL9Xbylb26MbtjCV/XtBos+l+5qFiMdXzwUeeulZS0NMf+mCbP5LJc5kFJeE6rGv2EsFqSjrQuduTEFxIIu7UaVCnDbrexDQax2pvH6Xd0BoMErigcV896Vdt8HNhgAN1IcZ6WsrKkVChs/d7Bfkalv0YfJZIJ3cxJF874F4DaqPZvrZ7QJKNxaqIZTw4/lFrKDnmzXZ2ziQn348a7zKOA1vldtj81dD3wGHB0dd9Syu8Wraly7fO8N86d4dXtesgpDoppsT0Z/OJC4BrpYn+Wpcw+K3RmtGQRtSZ9zI5r3/Wy0s7cyOoZQ/jeqB5cHuh5VcJYDnEWoc9iWXqYAkKZQTr7en2nRjo6JOtsvR7Ae0WIOV+DnLZJMUMcN65ngLu13eD6nwO1UB6+B33sdveqKhaKkG+3PQQp4gT7YY9/yb6TYqZY2H9lqA==; 5:sFZ6yLjYJ1f00+2Zw2zZ10WoWaIYCD+aXTkFcmc+/Qc4v9OIAcGwfAiHQLtVfrmcEkDpbqThIK/h1QxzDOCxPFewH25DqdPizltIzEGr+HQbF9lSKCRIPVjgu4GQZyaj80/5Pw/GwulIGPwXzZ8nGZGHsjhNk80qbE6VEXYd+5A=; 24:rD76LYFQ441NqPrCeMJ7PLG2hsTFZP9Gq4pZVJk94e+jLAwrYaqrFu3sNYm8O8rQzzrFnvyTXGxUQhAtPh/uua/rW9WCbb+7snFfAFh7f+c= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR12MB0170; 7:D9Si4w7KaNSJK9pNenoG/FigNdxlTNp1hCBB6ETiDk6pKEfGw/vReKcp95mHPbYj9TQi//jK6dla6gnKz9jJEKDMviR2ouaBmYKVINSNh0rhi4D1toJA8BotF0FKoHLH63Ig6W+/fUZHpvb9EAEsgUvQ4SDa+UF1dmVj9Q99IGv5nnzLtfEDg94tlSQt/Nxi3LJ6Lg4Xq3AogW97v7q+LD+QPN3uwMKrRDytJmu8SEeGNkgQHGigEMFYdlnJGiwK; 20:ZnKkNwEBm8LjrWwsGge/4IVXatYyR9gXWLJc64UtxrD8GalwL+hlLpFRuEM78DcPG4Cxv9dmtmJs58zPRpfFmIKTUVbmTys2hz7fSKQIcEs6dkkTpAiJ+FyVH5b+SxcqeXTR+orymudIq1S3I9dBPVZikEQarLmWhE0PxrJy20JvgI0HTTiSElc2oouK+NrPWJN7khWahAm0G8dcxc9PIGWW+INgrgs2/M4geHM5IA67g7mBCGVldisv2Obf7nw5 X-MS-Office365-Filtering-Correlation-Id: 4a3ee824-469a-42b9-95a4-08d5c0cbbef1 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2018 16:39:25.4534 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4a3ee824-469a-42b9-95a4-08d5c0cbbef1 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR12MB0170 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Link training is always attempted when in KR mode, but the code is structured to check if link training has been enabled before attempting to perform it. Since that check will always be true, simplify the code to always enable and start link training during KR auto-negotiation. Signed-off-by: Tom Lendacky --- drivers/net/ethernet/amd/xgbe/xgbe-mdio.c | 69 +++++++---------------------- 1 file changed, 16 insertions(+), 53 deletions(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c index 9c39c72..450b89c 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c @@ -216,31 +216,8 @@ static void xgbe_an_clear_interrupts_all(struct xgbe_prv_data *pdata) xgbe_an37_clear_interrupts(pdata); } -static void xgbe_an73_enable_kr_training(struct xgbe_prv_data *pdata) -{ - unsigned int reg; - - reg = XMDIO_READ(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_10GBR_PMD_CTRL); - - reg |= XGBE_KR_TRAINING_ENABLE; - XMDIO_WRITE(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_10GBR_PMD_CTRL, reg); -} - -static void xgbe_an73_disable_kr_training(struct xgbe_prv_data *pdata) -{ - unsigned int reg; - - reg = XMDIO_READ(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_10GBR_PMD_CTRL); - - reg &= ~XGBE_KR_TRAINING_ENABLE; - XMDIO_WRITE(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_10GBR_PMD_CTRL, reg); -} - static void xgbe_kr_mode(struct xgbe_prv_data *pdata) { - /* Enable KR training */ - xgbe_an73_enable_kr_training(pdata); - /* Set MAC to 10G speed */ pdata->hw_if.set_speed(pdata, SPEED_10000); @@ -250,9 +227,6 @@ static void xgbe_kr_mode(struct xgbe_prv_data *pdata) static void xgbe_kx_2500_mode(struct xgbe_prv_data *pdata) { - /* Disable KR training */ - xgbe_an73_disable_kr_training(pdata); - /* Set MAC to 2.5G speed */ pdata->hw_if.set_speed(pdata, SPEED_2500); @@ -262,9 +236,6 @@ static void xgbe_kx_2500_mode(struct xgbe_prv_data *pdata) static void xgbe_kx_1000_mode(struct xgbe_prv_data *pdata) { - /* Disable KR training */ - xgbe_an73_disable_kr_training(pdata); - /* Set MAC to 1G speed */ pdata->hw_if.set_speed(pdata, SPEED_1000); @@ -278,9 +249,6 @@ static void xgbe_sfi_mode(struct xgbe_prv_data *pdata) if (pdata->kr_redrv) return xgbe_kr_mode(pdata); - /* Disable KR training */ - xgbe_an73_disable_kr_training(pdata); - /* Set MAC to 10G speed */ pdata->hw_if.set_speed(pdata, SPEED_10000); @@ -290,9 +258,6 @@ static void xgbe_sfi_mode(struct xgbe_prv_data *pdata) static void xgbe_x_mode(struct xgbe_prv_data *pdata) { - /* Disable KR training */ - xgbe_an73_disable_kr_training(pdata); - /* Set MAC to 1G speed */ pdata->hw_if.set_speed(pdata, SPEED_1000); @@ -302,9 +267,6 @@ static void xgbe_x_mode(struct xgbe_prv_data *pdata) static void xgbe_sgmii_1000_mode(struct xgbe_prv_data *pdata) { - /* Disable KR training */ - xgbe_an73_disable_kr_training(pdata); - /* Set MAC to 1G speed */ pdata->hw_if.set_speed(pdata, SPEED_1000); @@ -314,9 +276,6 @@ static void xgbe_sgmii_1000_mode(struct xgbe_prv_data *pdata) static void xgbe_sgmii_100_mode(struct xgbe_prv_data *pdata) { - /* Disable KR training */ - xgbe_an73_disable_kr_training(pdata); - /* Set MAC to 1G speed */ pdata->hw_if.set_speed(pdata, SPEED_1000); @@ -425,6 +384,12 @@ static void xgbe_an73_set(struct xgbe_prv_data *pdata, bool enable, { unsigned int reg; + /* Disable KR training for now */ + reg = XMDIO_READ(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_10GBR_PMD_CTRL); + reg &= ~XGBE_KR_TRAINING_ENABLE; + XMDIO_WRITE(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_10GBR_PMD_CTRL, reg); + + /* Update AN settings */ reg = XMDIO_READ(pdata, MDIO_MMD_AN, MDIO_CTRL1); reg &= ~MDIO_AN_CTRL1_ENABLE; @@ -522,21 +487,19 @@ static enum xgbe_an xgbe_an73_tx_training(struct xgbe_prv_data *pdata, XMDIO_WRITE(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_10GBR_FECCTRL, reg); /* Start KR training */ - reg = XMDIO_READ(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_10GBR_PMD_CTRL); - if (reg & XGBE_KR_TRAINING_ENABLE) { - if (pdata->phy_if.phy_impl.kr_training_pre) - pdata->phy_if.phy_impl.kr_training_pre(pdata); + if (pdata->phy_if.phy_impl.kr_training_pre) + pdata->phy_if.phy_impl.kr_training_pre(pdata); - reg |= XGBE_KR_TRAINING_START; - XMDIO_WRITE(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_10GBR_PMD_CTRL, - reg); + reg = XMDIO_READ(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_10GBR_PMD_CTRL); + reg |= XGBE_KR_TRAINING_ENABLE; + reg |= XGBE_KR_TRAINING_START; + XMDIO_WRITE(pdata, MDIO_MMD_PMAPMD, MDIO_PMA_10GBR_PMD_CTRL, reg); - netif_dbg(pdata, link, pdata->netdev, - "KR training initiated\n"); + netif_dbg(pdata, link, pdata->netdev, + "KR training initiated\n"); - if (pdata->phy_if.phy_impl.kr_training_post) - pdata->phy_if.phy_impl.kr_training_post(pdata); - } + if (pdata->phy_if.phy_impl.kr_training_post) + pdata->phy_if.phy_impl.kr_training_post(pdata); return XGBE_AN_PAGE_RECEIVED; }