From patchwork Tue Feb 28 21:03:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 733865 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3vXs2J0lsfz9s89 for ; Wed, 1 Mar 2017 08:21:12 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="nfgNnQVr"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751984AbdB1VVJ (ORCPT ); Tue, 28 Feb 2017 16:21:09 -0500 Received: from mail-co1nam03on0066.outbound.protection.outlook.com ([104.47.40.66]:20106 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751648AbdB1VVE (ORCPT ); Tue, 28 Feb 2017 16:21:04 -0500 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; bh=SPvx0DNwdruzVJ155J2vr65FN6Ps3PmAOt/rxMhFLUo=; b=nfgNnQVrrFsUbNpi6bBgMV7M6PzPzLDUEU8LnFgeDoAtfDTkXWqekLU6Sq/JZZ/xgupAjCKwOTJxBEn9FZw0GZt/ygDEU6gi9yMQYf+mp9I2eOVnyXnBZ0/keC/4PMgZqsv1BnDm0N1QnGZFKy4b55Onr7QDoCX2RPoPN8rYHd4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Received: from tlendack-t1.amdoffice.net (165.204.77.1) by BN6PR12MB1138.namprd12.prod.outlook.com (10.168.226.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.933.12; Tue, 28 Feb 2017 21:03:04 +0000 From: Tom Lendacky Subject: [PATCH net v1 2/3] amd-xgbe: Be sure to set MDIO modes on device (re)start To: CC: David Miller Date: Tue, 28 Feb 2017 15:03:01 -0600 Message-ID: <20170228210301.32166.46205.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170228210242.32166.30038.stgit@tlendack-t1.amdoffice.net> References: <20170228210242.32166.30038.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: CY4PR19CA0042.namprd19.prod.outlook.com (10.172.173.156) To BN6PR12MB1138.namprd12.prod.outlook.com (10.168.226.140) X-MS-Office365-Filtering-Correlation-Id: b9b5f2cb-0b36-4d4b-0489-08d4601d3067 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081); SRVR:BN6PR12MB1138; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1138; 3:Nqu8MWLr95sDLoo9BT5JWWnzvZ6EdX6pXXSktL0ueGaFXQtcDscwbm24uAz6I3OsuN0GQH8l6W+1LUiPLww86BaMXEfdgKXw9wPpSvQYO7IQi3fiLHzATLlSdyCJyWgxsfpFNcGV5h/5H5L11DVcF+nbW8GZbJ6oWPlxdk+CufUf/3ybNj3sMckxwsYlhE0Cq6l0wGW85MwuUxgdsHzOjNMAg8+kE4sWW1g9NHh91buYW9AEUge9XCYMyAQxSMCa1CKkMP1DWStIBl0uIf1JPSi8AwPDGmTzW7F8CxXNvEE=; 25:9njVo5PbJrkDxgmWBpItbB4/J2cIYyDDwFvUYwUAI18pSO9dTKo5UPfZRlCI97EksMD7dCAmCaiQoYesmd1kZfbQB8sTofPGXO+QHM7kkqDkjWYZDxTlH4ehtQkTS1vNvqSlbwWGt7QcjMp7Ua54PcXGjfZuujQCLjr/r3pZVV8W4iWy9xge6Gq9G6221wF8wbUjzQ3ADfejVX/r9VnrWkJmoJCSeIXEWi/numk3qBuif5MaTL7hxST43mrlw8Z0cgpPLlmnOiswIgbgc/5x0EEVcaSI2cyvSxYAprz1OO+VicUoMacUoalWMwWZxKMhskRL3BTGH94kkHRsV6qHrsOFF7E8XeArQDyLqfzlJKKu+Uq0KcaVy2ojXGJLyNUWvPwo0gh3ViC+qa5F7ZhTHs5qKQK0IsFY2N52gx1+ciRLQ2aFb2ysMzT3w8jWCXY3KbpuSuYQqDjgJTS5s3r9zw== X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1138; 31:Szv+1dOPATjCBECCvEaShvd8AbJi5uVGbEIJBWypqiIPVuWVdSungnJnsVEVJ6C1WzfcX7R8Dp97Q4l1Rrbf3FWFdmwOAsS/xA7WJKUkx+zz2Sfu9mqlTOLZFwRgQdBYaikPRu9xm7Fuvj+DNE0J4alFUibnr16jL4x6OOmJkZuXIh8JnYl329wyclE02hDHFIDkU/h1GH6FFfXl1YuUp+aLSGCL5rJvSpdkhS3Di3Q=; 20:hM9Qly2SOYpTsPLJu8jqHfxadbAjgiXyovT2EyjEMT6ZOd/h1vbMoeaiAXB/hHctWPWauA98tmg/8HP7FWyMN/Lmf+pFoN5hD3Z7Z5IbZaygLk5enMyNzh2+/NM9tiZuuvkWvwneHbKyoekSZrycupzLrS85DhhCpFKH6D1gPIYxy4vIwuEmkqJoaqlNW/A3hMtjJPwym4hckEJVeLjtMHt0tSpC09inbWO7N2aRGov6QWijNd386vGpvDddeEz1Hp4PJjJe+AtaFl0ZSGLEk3mst4ZbllLJDzIjMwOYkeQbUW0hmXGgTr0HvgjkrwyfviYDEUNMqK2ZopKEsXOFTJfCvSV2udhDYI+medx5rgLX2HMsaxdtsrBNQ5sDN81Wz8YuHFHvx5FBbMeLWiQXNRjoqXrROeBst6h3tNSMnUjxo79sL/GbyMl5omr83S9fmXGKGQVTtJhqyMrhf7gF2itka58ZSeccVdhwIN2w/QW0vQatFVO/ZGvsKg5cRSjK X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(21532816269658); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123558025)(20161123555025)(20161123560025)(20161123562025)(20161123564025)(6072148); SRVR:BN6PR12MB1138; BCL:0; PCL:0; RULEID:; SRVR:BN6PR12MB1138; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1138; 4:wvAqYZA21NDQo+W4Ydb5Yb2ytpoPMjPZjQeAYJMgyE2dHUzjCsy2NEkpkoVeDoSLMabMlnh3Ulsl2EnGrbCQnruXHUi6fq9D4t+mGmTht1d98NlO8NOtH3+HpYkPvzQbXlftoT/hGPMgIDjXvRO090ItXdzNItBU5fwtbSSwruMbqSBVNakGa5TsNWdGmSxpbE5PnTZMa+FS0q+E00Bt1Fy63IgJBXKRP0lBId7jST2oDYCydvRwMjro7R+B5F3lUhN3h0IctjISGSZvEW28uFhWLOeNsfjrVQIx0b6dy5XS9KqmyXClKEyHH0L/8ycexiJnnp/BtBOV5HtMJrN6sxh8gVAVmGepW65l3AN4Ew2ZaaEXvGoiBXo+TXr1GukKSY3rSlF9xRFfGRjlKznwvRxYtFLSElouA072mSuldTazdvvvYuneSKT2zMd8Ep7iNpWWiH4QY8rAB5dypW3hcKVvV3J0Nq5wzguYe8Ojz+0I7p2PHevp082VFTB/kD1XNu8lTFjKJoz3lUO79oZ6jixaLD/l18iZO8GPgRdAQ+SZdmD7nnBnVJBFY/OutjHPfvr5LFcOq17yS1ayAOPg8yZs9LFgaYyv2LPqf+YnQQz1hMuel68kGInk0BezmbFOoMxFUvZyBfcybMc7y2p3RPN1YedwZZPQqvcOmf9lJ6DRBc+szo2E/urWSEgDeyPohTnDukjt1PTKDaCFlQUx3Q== X-Forefront-PRVS: 0232B30BBC X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(979002)(6009001)(7916002)(39450400003)(39850400002)(39840400002)(39410400002)(39860400002)(189002)(199003)(55016002)(92566002)(50466002)(103116003)(101416001)(97736004)(23676002)(4001350100001)(230700001)(6116002)(3846002)(83506001)(6916009)(97746001)(106356001)(5660300001)(4326008)(2906002)(2950100002)(6666003)(6506006)(2351001)(68736007)(76176999)(1076002)(66066001)(53416004)(86362001)(105586002)(54356999)(25786008)(38730400002)(110136004)(69596002)(8676002)(189998001)(33646002)(9686003)(42186005)(7736002)(47776003)(81156014)(53936002)(50986999)(305945005)(81166006)(71626007)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR12MB1138; H:tlendack-t1.amdoffice.net; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxMTM4OzIzOlFpTythT2RvdVYvTEJFTU5UK0dPY2lkcWlt?= =?utf-8?B?cC9YSnFoS2Q0eS9XL3E0ajRoVm5vSVJMb3dvaFVoZGVSTWg4TXpvOVFMYTRG?= =?utf-8?B?Q0hzb3U0a0loR00wSE1BaStHbGRBcnFHdVhDL244RWdWaUVwbUlJNzFiRnlO?= =?utf-8?B?QUhOT21SUzlMRDNLUkx4QXpEQXNZcGZHZ0RNQ1lkZG51L0dWRjN2ajZPUU1p?= =?utf-8?B?R1hYNGRIZ2J4SnRIKzVxTy81QldQaHljdnMwdjR3elYyb20zbzMxWDM1TExD?= =?utf-8?B?OW8rSk44RE5reUErVHJiQ2xnSmxpMVRZTThKQ09wckt2Z0o2RXZkTHhTRnJx?= =?utf-8?B?emtnVWtGaVpBWFlWT0JmQjNFV2dzZURiSWllcVVsRVdiN2RuU2tnNXJmQmRl?= =?utf-8?B?bTZUY3hWYmZuYllGY3diRE5OSDRvbUhwUGdycHplMGNHaHAwMGNnSWxnVmtS?= =?utf-8?B?SE15bGgzYTFsQ0E3dWFVZjBVV05XZTdEVDJOS2dNckdVNGQrd2tlaVhGWFVN?= =?utf-8?B?Nk5NZ0JIWTlKK21vcm81eURmQkxTcnRsNzlkVlErbUFyT2kyaG1ldlg0dmti?= =?utf-8?B?cXM0WHhrZEMrbnN3ZjVIbjJsRklYV0I0NTNOOVFLNlRmOTdKUllMWlNUQ1Fl?= =?utf-8?B?VzFuckVvcFoxNXJqUzBnUHpGZTBGbTd2YTB0UTJueEtSS2hJUHE0WUFneC91?= =?utf-8?B?U1J1ZThqeFVmSzJOOTM0cjlCQUNGYkdDQjc2MmFGNmN6TnRZVnZhakJnckd0?= =?utf-8?B?RC9vMkRsU1BtTEtqT0E2UE9lU0VIQ3h5NDErYnM4aWlPSlJvd2dGS2VTR21t?= =?utf-8?B?WUp0MzVUSGhlMXoraHl0YSsxVVdOd3FzVGtmWXBmbi9LMHBWVDNWMjNmbzNW?= =?utf-8?B?N01HODNaRmJaNFlSNW5OYjk5Zml4K3NUQWlkR0xTSVFTdkN6aG1kQ01xS1JO?= =?utf-8?B?TFowS3ljL1E5c05GM1NaT2tkdnJNVDh4QzFrVmhKTDlxcGlGM3NUNE14WStB?= =?utf-8?B?bGdHVXZsaTg1Tm5qL25GcXdiT2FGdjdsV0lmMWowdGtZVE93ZFN3dEtYZHZE?= =?utf-8?B?cVJrSVpwWHZiYmxvZzhwcXNIYThpWXV4MkN2dnZnejRZTmJzZGlOZitTS3Bw?= =?utf-8?B?YzRHeWRWTU9WSm1rN0lnd1BIb2x6RlAxYmx6VnJobmNKQWcxVmhtTkVieUNu?= =?utf-8?B?YVBqbWxLUUZWUGlObmxZN2dHN1lVcVd0NWNlV3lacW15SmRmUUx4eHVGamVW?= =?utf-8?B?ejhwR2tMOWl3RGRHQ0ZtVm13Z3poMVIzMEc1VGhWc1hzWjZsMFVtZjFNMXov?= =?utf-8?B?NG9lVFQwbVMxRy9GckZwMnl0QVEzZ1JLeUdIVTVKV21ZeENCWXNUSjBBUnlV?= =?utf-8?B?ejNyZDBaQm1WSGtDZkhJMnYraUo4dDZ1a280eitUeEZwZFFGT3ByaE9vNTkr?= =?utf-8?B?dmJMMGowTEU4RER4MEE0Z1lzbER1dnMyeSt3a2dhUUR2alNzUkIxQ21QUzlC?= =?utf-8?B?dWplWVpYUGV1TUlsUHpUSW1IaXM5MXc2Y01ZUjhCQ0liT3lhOFFrMm9XSFJr?= =?utf-8?B?L29HbDA0TGZ3ajNIQVpKRWpIRE5wUVJWV2dQMW1IVjFvK2NCcW0vMitDaWRF?= =?utf-8?B?QWtDMGc0WmIyYkY1cHRaZ1NuOVN4TVYvRmk3cEo5L0F1WHdCZWoyRkNuV01G?= =?utf-8?B?d2M0dmNlMlNlb25GUW8zUGxaVDYwQkNTdit4cjBWc1k5dWlxWEU3U1VZcnhY?= =?utf-8?B?cEd1NEQ0cGpySDFhS1BncFdyYWNnOWYyVUZqOG1XT3BMakdMQjA3T2JXRW1j?= =?utf-8?B?c3RiRGM0cWV4QjRhaUh0cURNSmI5UEs0alVORmtqbHJPMk1qQmhPUnU3cU0r?= =?utf-8?B?dHU1OHZUem5BczE5ZmNwU2Z0UXA0ZU5lWVZwSkpPSDkrMmtBSFJFRXVaazJF?= =?utf-8?B?d0NiZ3pkYUJraEFqdDJRYnNpMTR4ZUhrUjM3RGdPV0tYamxYa0RGTmYvSS8w?= =?utf-8?Q?+okeB9?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1138; 6:fpHFQwXsgqV5i8mzvYi42NuRu86rAaAOwDER+aElNc+/rAhEk7jM8aMTZlgMSljt/Qkmdy1ZkJ+UvIGET8Ot2WOndHv0RFf4J8rfKW6ris5si0QE3uUCMeLoIrh3bcBOMlybMkT392gHH7q9ukOV/akbL8BvL6idz16e+gxcgcBIi47q/UiTNS65e6Q6NXJQeLiQad/EfP6HoiIWLAn4yRNgukDL1qvNDJaw+MJrvqe5H8Oy/KNJEpdY4xl2sM08o/WxEaQEyPbFSgrzZYly8jAEZneewrWkDyqevQFap/Rr8B0wJ2v6czRjDBKY7yV0NoRyRRbra2XsL/I2yxjrfL+0C4hGrXreA+pRJDrE6vekwgJTFdvNNN4/ZZ2CBVTMUNUggDPZ3bsJJpiNdzD5gLGF3mC5mShQZ+8OSxRZQyc=; 5:oji82TyBF6jKEtPgIwC4vp/qXF71YeShrFUQoydrlZQcfIJo401u4wepSTOYYSe18WZasm1Yi7TMqZlf9065yajKDzzNFafof+mhyoov73o6Dveyz1fN1sQNYbF6wbdd9mJYXmcdc8ISOYWei1JR7A==; 24:2D6or793/MJxcsJ93LQsw/A9tceTui/5NV3tpnOlmdV5hehT0RTmi6DBKdkXY9N99X9d+tSffqrGN9OV8/MH/SNwOAVRE5D3iz9uj1dYgMQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1138; 7:mK9DKF+36oo5h7NUdLtIszJ6ElI6OQA3SLDudjvHfnybO+A9Xky/Q7JlPgWPGmWIIXRRopRnrcYzGw3c906YyhGKxGh2EJx+me4Y3s/jBxInqz0wU4cs60x3uX9e2shnequn6KHKxjwdUgBRbH5rtGxWxRFFrITAPHakI1q4jd+I7H/rjEGTdzW0yFrw+Bn84Nrcs0zOYx6olAb1JwGg7LNx2dnAh3dwMxb7XN3yvVlKvVfnOegULCgmcUgJh8QANEOGB2BfBfnpz57bjvQPt79F58632/MebzR8RgqWoAno9EKXqwUUUpNl8ZvLM+L9uNuXo32wfgpMAdWp+khukw==; 20:s/wdshwFxrRlSe85G4/gmCNlCS9Qkq9dB1eSbZDp3cR5By5L+iIxphdLqN9E2k4vSXAkc6Updmhl+wGTEcOZNBkUxIUjHzBF93g0HD286ydB77WHfitokpqo5qsSNQxeIx75nD3rr1dZEKWSGWV3lKGQXvI4KhwZnj7koCSA45CFcTOQN1fAU0Bo+Lzb44dINsd4rwMOP3YvNiVNsMb0ruvTTBmIa1Oi+uwZF4aWYYzDJCOhSEQhYCK44cLFSqKL X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Feb 2017 21:03:04.4044 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1138 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The MDIO register mode is set when the device is probed. But when the device is brought down and then back up, the MDIO register mode has been reset. Be sure to reset the mode during device startup and only change the mode of the address specified. Signed-off-by: Tom Lendacky --- drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 2 +- drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c index a7d16db..937f37a 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c @@ -1323,7 +1323,7 @@ static int xgbe_read_ext_mii_regs(struct xgbe_prv_data *pdata, int addr, static int xgbe_set_ext_mii_mode(struct xgbe_prv_data *pdata, unsigned int port, enum xgbe_mdio_mode mode) { - unsigned int reg_val = 0; + unsigned int reg_val = XGMAC_IOREAD(pdata, MAC_MDIOCL22R); switch (mode) { case XGBE_MDIO_MODE_CL22: diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c index 9d8c9530..04804cb 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c @@ -875,6 +875,16 @@ static int xgbe_phy_find_phy_device(struct xgbe_prv_data *pdata) !phy_data->sfp_phy_avail) return 0; + /* Set the proper MDIO mode for the PHY */ + ret = pdata->hw_if.set_ext_mii_mode(pdata, phy_data->mdio_addr, + phy_data->phydev_mode); + if (ret) { + netdev_err(pdata->netdev, + "mdio port/clause not compatible (%u/%u)\n", + phy_data->mdio_addr, phy_data->phydev_mode); + return ret; + } + /* Create and connect to the PHY device */ phydev = get_phy_device(phy_data->mii, phy_data->mdio_addr, (phy_data->phydev_mode == XGBE_MDIO_MODE_CL45)); @@ -2722,6 +2732,18 @@ static int xgbe_phy_start(struct xgbe_prv_data *pdata) if (ret) return ret; + /* Set the proper MDIO mode for the re-driver */ + if (phy_data->redrv && !phy_data->redrv_if) { + ret = pdata->hw_if.set_ext_mii_mode(pdata, phy_data->redrv_addr, + XGBE_MDIO_MODE_CL22); + if (ret) { + netdev_err(pdata->netdev, + "redriver mdio port not compatible (%u)\n", + phy_data->redrv_addr); + return ret; + } + } + /* Start in highest supported mode */ xgbe_phy_set_mode(pdata, phy_data->start_mode);