From patchwork Wed Jun 28 18:41:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 781828 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 3wyWpt22RCz9s72 for ; Thu, 29 Jun 2017 04:41:42 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="CywkohBH"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751587AbdF1Sll (ORCPT ); Wed, 28 Jun 2017 14:41:41 -0400 Received: from mail-by2nam01on0049.outbound.protection.outlook.com ([104.47.34.49]:26880 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751559AbdF1Slg (ORCPT ); Wed, 28 Jun 2017 14:41:36 -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; bh=6l0ICJhobAGOl69kWUv0oK+VkH4dmSW277zkRVi7GvU=; b=CywkohBHlx7DeO16MmJ0hqyknpVQSKhFH6/2cmF2SuE5lRY/BJjQ/HLbl6H4nE36wwXjt8QeJ6uMFTKtycwXTSQ/XfHsy/8s0W9oy7m46dzXy0wLoxBW94crJm/l9EJQxShS/nB90XmnI92spFVgkfZf8kPeTuqZPcYOkvqgli0= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=amd.com; Received: from tlendack-t1.amdoffice.net (165.204.77.1) by BN6PR12MB1137.namprd12.prod.outlook.com (10.168.226.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Wed, 28 Jun 2017 18:41:35 +0000 From: Tom Lendacky Subject: [PATCH net-next v1 01/14] amd-xgbe: Simplify mailbox interface rate change code To: netdev@vger.kernel.org Cc: David Miller Date: Wed, 28 Jun 2017 13:41:32 -0500 Message-ID: <20170628184132.21972.98147.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170628184122.21972.87767.stgit@tlendack-t1.amdoffice.net> References: <20170628184122.21972.87767.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: DM5PR17CA0034.namprd17.prod.outlook.com (10.173.128.148) To BN6PR12MB1137.namprd12.prod.outlook.com (10.168.226.139) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 81aa2ba7-5412-4395-0d20-08d4be554de9 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(48565401081)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BN6PR12MB1137; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1137; 3:ZkyrYBn9HYeR1zg4B0cdygJVKwBQ3PrwV6f8/B8mvS1ZoK6C4ny8TntaMD55FodO61ayy9sJT8hu1MobiZGfHoZtO+VwGu7jv64kb5N+eL9lDKnCEo1N6FQdLWLGUKGr/0iXpgIsJA+JvQREeIgerzLvIF8W4J2xJ2RRJMuBrBdc1KjsvXuW6HtOr0rxuGiFpG5qYgNJ7+cRUQhttUwXtgJmNvqz8vzY1gwEbfsfUtmJkHcOIGVzf2hZQlPi+EvcqUt03qDb7CjENeCX+KIRi6j3/XynYddHHO+JnG7OeqQgq+updVLj3eK29iFuyZ3Q+jiPpGwX9iAIHQa7bAEJ4WOsEeU3fDwfRJFzMdaRBPZUbEwGB15903mx/CqgvlP/gTX689BGu47BnuXAbhCZEq9+n5Ud05Axl19IAWWIVOsDOeYX7LIQ3HyjXrGArWMJxZqHlKiWvWoGP3Ig9MAbat0bBS+Q51lJih/yczCdI0UvABECRD1WW9DkU1Rhsq0s0O4tJauB6xCtRCNu0/N+Ak9jWi2Yi/bLtO3j+MTxtyfqRGWPL/M2an8AiOPe9GEb8Gpq7ngpvsbA1SzuhB5mFdN5nZrsKT8viO4QieE2eM3+4HEfguJVkF4twSzXOzTWCbGb4aJozKlexKH/LYxwgYJRwN8APVjgZ8zXA5kCraGbZWVdL+k+o+79OyqBHYDVHlbT6k/O/kZYXWd/0uOmJg3XpzWeB6pmi9KGcx9jtJnvPuF6QMCraSd3XCmvyuE4uP7JuoOCfjue3E1+rlV1uw== X-MS-TrafficTypeDiagnostic: BN6PR12MB1137: X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1137; 25:DqtiRs3mClmnX0xXxPRQVzTAL6aya8M5rsi2yAbcZYY24oXgLFBYqD2SpG7c6+AsgAxnYeLHjeGlm6w/+bsE4bF13mgXUCUWGz/SHS6bz7ht/PY+eLKlivirug7DC/cv1pwAUHemS7lvu5DSE3uk7rigkqRRBO2qchggD6VSs4epoL3shx0VbJ5MZbEpX04c61GdvTz19leZWHuS6l9pvMBQQfa+jBNi6oy09dap0Kn4spmW7ACTpfgAaVO2tasOcQIlmXEDS4F5MX4AYHtpe9HRBKkOfsCZkKn0WarGUS86fNRLf5hmM8QQ3EbvH7EyPox9D+kz/7ywqVRUby/+ovaDXbHx85Zl3RnOw0EEHt5msyf/MSJJRVmgt5AysIB4sGDWNdXvUvTwlBOnxmr4otaV2kx+DHL1JviuDz7LtKIb1t4H+GNQlWip+uIXsNxr4igPOUENtIPP8yQIN4upZbkdAQhH3WeLFv749lraX+j9Ee2l0NaItIyYOCtLLJHriXg3H4vvJxNgaRI9miiaNL1i+q+jq8Nhh8cFwEPHjsZSkb2WOFIZ4CJ4g2fXgdBvZdLxDB1+20Qty7SHAIuRguWOO6wJAs/LmbL+2zHzIK05miwcyYM6i342hz9hRVpzew+ZZuecerOONtmkZcUzt30eigYW0YQ9dKeV54ZVc+tlhFna05VM8Da2ZvvEEweS8APhQbh2n48F9j5GhqfoQovLJxlBV/01WqFN1EHVCfZqJEvNoX+byRKKQHjllno8fI4Df5zjvkxvHIUAUzc6AGmOxsXMTKalwDYjX3m66906qVinQVKIzvK0fpGnB+gRVmwCOJpuEr/ZlFKpY86TALHDh7kRpi5+Pn7gtvIhcYhBqf8tt9O5JX/DVRrAMrf4isTokvX+ik0tPkQ0ujC7nDBuSmd0EZvKbvgRVQP8nGA= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1137; 31:rRNaiyOOadVQkHwk0SJagBEHCjKDUO1HzUxdOWSoWq3E3BK8p84wnHn7HuuFVTbVOBuENlUN30FNYvJGpILhtDc4X944lBzrjjDhoMSscMp2hchkEVZo2xvLdTqce3HildSQV33MLqbIiUCxYGGpwQ0xr5xpUkV4JrtRQxgwtcsH+1HRwPzb6Kz1Gq1aMaO1YdL2aiT8rtIMPaGfymxr29rOIA8S84rOnt8HOZwGRsikYIJ0B4jWDVPLrm+hmEvVdzgdzbsg7vGt0ygmVy8UDh6AF75WKIS8UMuDR17Tx0xphX3nv+jhjgYFUCGuj9iOfWQzmcmX2MVDzjPQFaJDTIei3dA0bN7HCrIHGQuKIqZvz7pBnCKiBjwqKX+dUWInu/Jgz1Im7PLHcbqEqMfApnyr9w7oIYcsj/kKqlh18OSNgfnC8Ue29GO1XYdNZaRcDJ5smNVX2MSSKh33WNAhqJN8aWp4ZtTS4OPVstIBDoKbev16l8oYv6o46Lm5s7EyqvCWZmbdBvDRspbdR/1za1TCQWpSXZ47tn8oA0EugWFY7CAsnL9WxGd7qNmo2KUzO4VWVWDaplHvVKNe4CY/5XcMIkpvn5Qtk7CdneChyErgkU9g43GfXoe3dnn/1xp2bzNi1HP77dopZ4DOUmSZVEDx/rDwhursXAbQt/9hQAU= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1137; 20:uFs5FwSzW81EY7xGu2zd5C9Yto7PDyG3x5K+GK02i1FB0oMSLZniK4fEQsT1F68UDOR/EfLAjuJwumbtRFUAHUypReZ1Brhda5QWs3hETfHRiqFgm4vZ5xNgyQ7z9vR5dYXWkwPz5sfuJ2iArzJSSysZ/Nhad4WxoD4X3J319cepkJCnFt/YcZB+96+dY+klOP/K/IjO6SkSt0qirB47HzQd5QtEmEWlbAFHf35uRLcZKK1nP6vxFZQUbq85kZn21oCYYOoZ9h5QKyyZ6LQI2lvKenqJ9FaSYG4I2ZF3eu38OqByZ2Y8SIhLZ0/3YWXJ2fqgSex86ZyHttziuHipUv87byMzFXGfYPP9SFztM1UOlKO6UozhJYd8+egRjxrx7DQbDWQKak3piMYWiobsXoFmWCK3/OYim6jlVIeuM9SycB52MuT/Hhj6MhfmQPJpiRQq5bIumOejdkojakAoKlg6g2unb1HMkAQqvpEzgxVed1roj9NPh6EHffQMNs0q X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(6055026)(6041248)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(20161123555025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR12MB1137; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR12MB1137; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxMTM3OzQ6NnQxVlRrWWNwR2tKZkpIaVBGc1dPNkRnVGlu?= =?utf-8?B?Ry9Yd3NJOWU3M3AxVEtraXZCcDFtRXlUaFFzeG03MDdlUEQ3WUxZcUdSVWQ1?= =?utf-8?B?Z29idjVnMWNMZUdsN01LSG5LaHg1UERQckc1ZGdwZU1WeXN0REhCVWZtVmsv?= =?utf-8?B?bDdnaTlGTTU5TDdHNGtPY0FyVW5hN0o0SnhYMFcva2htTE92dDJjMkxjdjZP?= =?utf-8?B?L3BrZ05yay8wM1p3cHVQYTQ0VTJqOTZGUUVVaUE2eWQrUWlZYXNiMHZWV1pU?= =?utf-8?B?cW9IQ1gxMlpMd1hraFp0bDFoRmVWVEFBWk10OWNZSW0rUkNZRExvQ0hSRHM2?= =?utf-8?B?ZTk2NmZWOEMzck10NVgzbzZzdDNPS1ZjcHJGamkrQjc1eE9RTkdJSmVIZTZk?= =?utf-8?B?L0VsM0E5WWozaVJmMzhFNG4zaHprYTFWWVJ5cUNSM0dVVkswT29tVDM2WHZV?= =?utf-8?B?SG5WbzQvbTYrbWhFYVFYa1JLQVBUVzJibFB1ajFJTFZkd2hqbDhXQzlWbjhk?= =?utf-8?B?TnpRUTYrRnRSQTRlelVDUm5UTG9CK1JmNHFNek1KTC9MSmhzVXpRaFptRnJt?= =?utf-8?B?d1VDVUpSQ1BIa1NqL3RsaW1hTmY5UEVNMTR1QnhaNUtvRUM0a0RqUlNjMjgr?= =?utf-8?B?VEJIVVluR2dOQzRGbkxZWmZ0dVM3VjZGU1A0aGo5MEZudDB1M1ZKckZVaWk5?= =?utf-8?B?dGw1NHRMUGsvQnUxWStOQ3NtY2RNZ1dseHZzZWVPc2tKTjNkeDR0aFhGSjgy?= =?utf-8?B?YWpJbjA4Mm9JajN5NU9LSlF5TUtxK1pZQ01jUCtIMFdtc2E3ZjVTQTVVSDB1?= =?utf-8?B?aVNLZ2dvTTJvZU9PMWFsM3ZSTjRHbktydVJ3SE13bDJPNngwRmZpbVhLb3k0?= =?utf-8?B?MTJxVy9kOXJCRkhCQ0VQWGFEQ25pTUNreVVpME1zUldiOWZUelUwQjVsVzBi?= =?utf-8?B?RjQvdXFTK1VzUGhpOHQ3cy9pM3o0WGJHUHJVN2crRGtUR1J5UjJZRFB5ck8z?= =?utf-8?B?YWMxT092aVJRaUJuS0EvMWlqb2t6bERSQ2gvU0d0M0k1S2xsZUZOemJpUElr?= =?utf-8?B?Z3UyUjIwT3dkRHBPQkw1RGRabDM5VXVlelBaU2lqZ2hmZldLNjFGQ3JmV3Ev?= =?utf-8?B?L0VZSmxaNm5SaHFkTE52S1p1Uk5jSFI3OCs2c2Q0N004WVNObUNoMFljNy90?= =?utf-8?B?WGFCVHBpeVZZMVR3RnI1Y05lblA4eWRjcFBzdlFWUlpzbzQ1Mit6Mzl1WGVm?= =?utf-8?B?VFZucFNKVC9BY3ZnQ3ozTHUzRGF3Z2x6L1NWeERidXFXVG1tVTFWd2QybE9V?= =?utf-8?B?UGZCUUVXaHN3MzMzb0prL1VOTEY5ZnN3NG5aWmVLb0c2NStHWmZTa2g1cHpj?= =?utf-8?B?eWc3cWVUU09SLzJHeWx1aWZuK0tzUVRzREc4bFRaQ250UDRhaDJyVzhJM2Vx?= =?utf-8?B?MVNzdVVKRFhZLytQWmZUMGhzVWZvdGhPYWhXZlZjNkFxTmd3MXNKYk1JSFcz?= =?utf-8?B?MzM1Umphd0ZzTVdwcnV0UDN1N09jeXdkYzVBQ0EvSFd1ZjlhRUpVOVVzK1Vk?= =?utf-8?B?cTlVRnJOSUlJeGpJMUwrOFBSMFp5U2ErKzU3WEhyN2dsbjBsV25hQlVMeU1h?= =?utf-8?B?NHBRaXl3dWhvQkpTbGFJcjlsTlgvYnFXZDcxUkN1TVRkVVJ5ZnNqM3ZJWHpK?= =?utf-8?Q?txKMBweL70oDZXf6U=3D?= X-Forefront-PRVS: 03524FBD26 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39400400002)(39410400002)(39850400002)(39860400002)(39450400003)(189998001)(478600001)(6666003)(6116002)(47776003)(110136004)(4326008)(1076002)(3846002)(33646002)(305945005)(66066001)(25786009)(5660300001)(4001350100001)(23676002)(72206003)(15650500001)(53936002)(2906002)(38730400002)(103116003)(53416004)(42186005)(97746001)(2361001)(2351001)(55016002)(6506006)(9686003)(50986999)(54356999)(76176999)(83506001)(6916009)(230700001)(7736002)(86362001)(2950100002)(50466002)(8676002)(81166006); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR12MB1137; H:tlendack-t1.amdoffice.net; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxMTM3OzIzOkROZldnT3R5LzBNamdFUTgrTkorcUNrNGFH?= =?utf-8?B?RmJYdWRKRVFJcnRyWE5ZQnV1OFlBeC9DUHEzbUxDTldVUUlzcGlvYWFudTZo?= =?utf-8?B?cjdVTmJqZmRWQ0JXdERLNXlUVyttMVMyVFNEV09JWjZYNHpMelZHR0FTL3kv?= =?utf-8?B?aE1xbmdia3MyaUhvSkgvL2lIMkJ2WVBTS1pEZlo0MU1YRG5vOTlrVUlqcUd6?= =?utf-8?B?Nk94VVR3d2FsSGNUd2NsZmtpWE1idW9pVC9UV1ExVERiQmRFamtTYmM1dEdC?= =?utf-8?B?UG16c01XclBqUXZHWHgraXcya0N1aFRDV3lIUFNHaFdNV1J6K2ZIMUJXdG15?= =?utf-8?B?VlFJZ2t4QkNldWtXbmtwTHI1U2t0TTZQcjJRR3ZHMXpGU2Q0MHpGZHVCQkxT?= =?utf-8?B?OW9wUExoSEMzSnpZYVhEWm1GMS9vc1NaeDdpTG1TeENLK1FxaExhUy9BWEZ1?= =?utf-8?B?Y0lCa3ZzUG1XeDlEQWo5MG1TMTBkbmRxWnNYQ3grN1VJYlZnWjd1azFPSkpi?= =?utf-8?B?bFQ0dy94c2UyWmhaS2hUc0tyZUQ5TEI5ZGUrcHhRamI1Y3I3N3JMOW1UU3Bs?= =?utf-8?B?cTkyVEs0Z1RrR2MvaVFOa0hCVDZTUXVhQ2ZkMFdiZkgrNXZkbklYNHI1cXh0?= =?utf-8?B?ODRvVUJKaTZ6NkkrU0Q1NmhpWWRqRjJmVmFFcFg5N2VFV3ZIclcvb3VyUkhF?= =?utf-8?B?WnkrTDM5eUxUZk52L3diTEVGK1RuNU95cFlLTFl3YUhocVpzblV3QjZYWTVW?= =?utf-8?B?c0IvakFlckNvZGV0Unl1N0QybWxFYzBTMWJWZU05YWtVd3FVVnpDT0pOVmJG?= =?utf-8?B?NXQwZFdNWUNPUHRMblZmdmFjZWFwbG5CUkQ0ZEw1QWNwS0ZtSGpYbjRRSmQz?= =?utf-8?B?b1VxdTJSNXFHN1N0aUdJZU56S01YSC9SMklEdGpJNzJFYjlJTjdIRlVIVTBX?= =?utf-8?B?Q1RxaFY4UWVrLzF5YS93eTV0RFdtRVhZK3Z0QmVIVnNoLzFlcEFxUHJtcjAy?= =?utf-8?B?bVEwaFdscTJjTVpLeHNOSkFEQnJYZGZEUnl6czR2b2txaUppNEJTVDZOZFpB?= =?utf-8?B?V0g4UVF4eXR3dGJhQjNFaE9HenM2enYvMmh4dlpnMDU3UXFydUYva0xjZlEv?= =?utf-8?B?QkZ2Q0dnckZQZ3JxdDVSWTBSaWQvYWdwUHp6R1ZCSW43UmRsM0FieHZBQlQz?= =?utf-8?B?b0piYUZQRTJmWkpEM1NiTHlLWmsydk9nOFZiMHRSblJtb3NmSFlGMnJidnlt?= =?utf-8?B?UDVCV201Q2tGVVc2ejZpT1VWbzZ2MDloZDJFQmlxaXRKRU9QQ0tiRERiZ1pB?= =?utf-8?B?QStidDRBWXpkVDBjcU5kK050Q3l1c3M4SFlDSExxbWZITXRKbUNaZ3NmOFJm?= =?utf-8?B?eHAvYXFGdTdyUjVhQkJYSXpCUTRXZFhLOUVUWG10Z2pZVUcyMUt3dWMrR3lu?= =?utf-8?B?b0phVDdpNzcvd2FsM2hNTFhqS0pCYWV1bzlYWXhJSGZmU0l3UVZ1Z1RmQ3d6?= =?utf-8?B?a2xKR3B1OFF4MGMwaytRUHhuZUNoT0hObkVhRjlLclJabWRYU09mSjhUOHF1?= =?utf-8?B?Y2doZUpyd1VMQ2ErWGtQbEpoMWJzNFUxd3JNUVRoU1FQU2ZNS2xHNzM1dk8z?= =?utf-8?B?QUZxcTNUbThNcHpyT1I1L1g3bk9EWlk4WDFEVDFONkp2dGRhSU9uc3VnPT0=?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxMTM3OzY6N3BtZWNhSTBpYVduNXhSdDBqcisrZ3VOakcw?= =?utf-8?B?NDVZWjY3QnpqSXdTSHF0ZVpSSHVkQUl4UHdYNjBGdGlFM1VkNnpIWFpITlh5?= =?utf-8?B?MWIvOUYyc0dSNmpoWGszQ2srOVhPM1NYY0k5NHZ6cS83c3A5QlpNOUdiWERI?= =?utf-8?B?eERPMlhBd2ZzUTJjQnNwWGtpK2xmdTRxUFRGa1ZRQTQyVFBjN2RPelVhUEN2?= =?utf-8?B?VmdDVnlFb0ZsS0R3a3hjVWMzZzV1V3Brb1hBbVpRbnM4bEY3R1VaSm5qU1NN?= =?utf-8?B?UjhwOGVNb0g5N0libHd6a3RDQngxYUFvUGF4c1BLWWo2bEk4TFFabmNnaFBl?= =?utf-8?B?ejgxZk50dzBCTE1WaE5xYThacU5mMEVXTW9DQXhWZStBYWZnRW9tdDdSRDZu?= =?utf-8?B?cFpTeENVTnZKOHJYdE4wNjZOVFh2eVlKVWZ4c3hMejZ0WDVKQjZYa2ZLanFE?= =?utf-8?B?R3RQNCtBWWxLemhpN09TSHc3ZUZyY0hpZVJkTHFPZ0Q3QllXdUYzenU2eE9i?= =?utf-8?B?NUxIQXorR1lwcWQ5eDdzb3A4QXo4U2hqazlFV00vcjhZdk91aVhFQmpxQzJD?= =?utf-8?B?TXdJdkF3NkdFTzUvSHpEelpQRnU0TCtuYmt1QXgzTmFjWkkwTGpXNU8rS094?= =?utf-8?B?SHdoZTF3STlkRVVXNFVUbzZLaFkyOWZVMHNOYU9YdElvTXpwdnFzemNYNDg4?= =?utf-8?B?bGsyVWlkRDN2RTdqQ3EzdjFtd0I1T0RLeVpHM2ZZd3Nob2VwWnA1OERKSFpJ?= =?utf-8?B?cVZraXZDcHdlZHhLTGxSNjNTWFFHSzEyeWtvSmVURThvd0l4QnpJVHlMSlNZ?= =?utf-8?B?U2VVb2t4dGd2a2dzM0tIcXBPMU9maTd5djNuTmkzamx2azBsTklrN2pmbEli?= =?utf-8?B?Y1NkRkVySlJ5cW1td2RzSTQ4bGRHYmpjM2xFTWR4em9JQUJCZ2tEMUozcVd2?= =?utf-8?B?Mzl3djlIaEJuTHkyMmIzc2tzbGt0RHhWb1d1KzJpLzF0ZURaL1NBWVVMTTlC?= =?utf-8?B?cEttL2NRWWUrc2dEVW5nVWlVbmJYSWhtUFNSdDVFQ2NPS21FME9WbUtiTUhK?= =?utf-8?B?TUkxQlVMRVM1b0hPL3lnUFlPTHJxWk9rdWNjamxvRGZMMElwNXhkMlI1bm9x?= =?utf-8?B?MzBIVE5POG1sTzdXQVo5ZnRQL3lxeS9hcE9PTUhuK1VFQ1NHcUlpK2ZxL0pl?= =?utf-8?B?VEV4VTczZDNDMG1hS2Y4SEJQUTFHTFVqTDNYdDAvbEJlZVZ5d2dmU25icW9x?= =?utf-8?B?cExtbG5Md0NWMWJSR1d3QnQxWnhoSXlpcUhxMzFwcElBa1ZWUWltbHc1NWxQ?= =?utf-8?B?WDUvVmx6Q2NPU0YyR3UwSFpjQkRlU0QvWWp5Q3BjcWhGd0VpT0l5YzdTeUlq?= =?utf-8?Q?7pQElcr?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1137; 5:dC2Pyf4BHRnEhH5jzo03srlSezxRfVFAVnxD/7WcIVYJ7KPCi9ZofDfBeUlA6xqTJyqZRyC06dHggaAXai7EdjwSltzOzQ/pzFytjrZ2Rw9yTXe05DzdIVgUkWDew+AjQuXdy3cA5zXCP7KbdM5mzxkmg6XhgW9G4GvXml5Er6IOWaPsb17GwhPbeimIoF5/jw9TlwLiFFbOtYNep3gkFgCCmp9Yv8G6jOz2m3EI0h1IG1S9DupQ5iabRCzQ4fWMgqa+ILdMW23IceOqbHLqMe/+U7ImHQIsjdf/rJJdkycm4WAIFdT/Nl5fyxZtxVo4KwgKVEGL5cqWVazP+ctAKk2OwS4VmLeAUm8XTnyGeuzQb8U60C33GCvkz7vSWRN5m3498Q4dT8y5QXVQL0LTHZQ7SLO5CnK19rvjS58VmIjubCaXbgawI/+QvkydHHiaer6IRpzFOpOvksymtdfdHkN82NxNaJCdtNbnuRypSxoTg7m4X5t8vC79lG4GVqtO; 24:sBi/71mw1kKRCWL5dgpiL9cgUwmpuUG5KfqEQxqIey0OnKzSpjwMFNB6T5AnQvJAh4Ro0bK2ZU+VNGNw6SF0GQBpCR4xiUDeFXYmAi69j9U= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1137; 7:Y5z8eFch9bNnAxmx5gP1tGmIkcEqpfiegsHNJ/hWIrao8LH8wwC1U5HWuS1GCcLeMxQTSfrEDMAkTCiDGJbnd5FaCmN8znOp6JamxSGHn3gfwLdjp3HfIHdF/dt9BZQXgxRMllzRWdmgsWUx9BBJetN5+DJwK8s6TsTE41rkbpJUubSXW6RJRHCfG87QuIXMZ3qKorUgLRNXJOu4nF3nwvH5P+roJcgWHR30zysYeNYAVyx5oBcHc9Kzx/WoPjrLCuQFdk3KkiXpVbmblkKa7KR8jn/zJfpave5TcuisHN83FZgubEg0EPegWAKTBF/gqQRhX8XMIZg9A6Tl7IjvGa0mW+xWRUaXCPvFvkJfTiTDABB5womHi4SM4AAbiXF9rL9+k9K7LrpEY8RWEKjqGSr+a9PkUfnaw9CAGk5e8/Aj8MwyvrNi0jojXUdXV2eH1WnpgoJFmggBQ3vKut357+LMStXbcdQLm395UwmqYPXYzEl/z5LHFlyEAr1KmVGpx2b2u4BpOTewj7VMm8JU7AlCis410KPysg/MzC73/jn/k+xq2tzVuoKs8oR30KZn6ouzjfk6WvltHyx9Gk01/T+jVURjWYwDUKICCGjX4aOUb6bbE9SeogVBZBH/SQvIO0OLWXC/Lv89PcSJlIuqoqPZsU01UlPpwmIQbjfB2G6fIzKfVKsyIll5wuClLDO4rm4O5E6DC2U+qqLCl2sMmpXprXC/zfBpbXnloZUKpGpAmCibrfjQTz/2WwNAPBu62aF1+Xkf2D0gnJIOTckUKwAH2uFy8wAYrP4XRG0nYBg= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1137; 20:Ou+mrYEdtUypSBq/c1qzZ7+miSQCNYTtNHQvurAqZ1CvbuW98yiA/9ejGSLkSJ3C2hNigiTbw2GVRowtfSXN6uyOcSXNSjlWcKxzpN9A/YHsvcoAhokr/Z3QQ5J3yw6cVcBnx1RsIcVZHWH0EKoXep3uf7kQu5mhNIx6AowLOdLiCTZ9ZYcjncs50lS2JJH2+OSPr18NXv0WOLoNSjS24BoZaM7Yjpq0BxhU0a/XP2+3UPMBoMhwPAnYipQGRknS X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2017 18:41:35.2042 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1137 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Simplify and centralize the mailbox command rate change interface by having a single function perform the writes to the mailbox registers to issue the request. Signed-off-by: Tom Lendacky --- drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c | 155 +++++---------------------- 1 file changed, 29 insertions(+), 126 deletions(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c index e707c49..0429840 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c @@ -1694,19 +1694,25 @@ static void xgbe_phy_set_redrv_mode(struct xgbe_prv_data *pdata) xgbe_phy_put_comm_ownership(pdata); } -static void xgbe_phy_start_ratechange(struct xgbe_prv_data *pdata) +static void xgbe_phy_perform_ratechange(struct xgbe_prv_data *pdata, + unsigned int cmd, unsigned int sub_cmd) { - if (!XP_IOREAD_BITS(pdata, XP_DRIVER_INT_RO, STATUS)) - return; + unsigned int s0 = 0; + unsigned int wait; /* Log if a previous command did not complete */ - netif_dbg(pdata, link, pdata->netdev, - "firmware mailbox not ready for command\n"); -} + if (XP_IOREAD_BITS(pdata, XP_DRIVER_INT_RO, STATUS)) + netif_dbg(pdata, link, pdata->netdev, + "firmware mailbox not ready for command\n"); -static void xgbe_phy_complete_ratechange(struct xgbe_prv_data *pdata) -{ - unsigned int wait; + /* Construct the command */ + XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, cmd); + XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, sub_cmd); + + /* Issue the command */ + XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); + XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); + XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); /* Wait for command to complete */ wait = XGBE_RATECHANGE_COUNT; @@ -1723,21 +1729,8 @@ static void xgbe_phy_complete_ratechange(struct xgbe_prv_data *pdata) static void xgbe_phy_rrc(struct xgbe_prv_data *pdata) { - unsigned int s0; - - xgbe_phy_start_ratechange(pdata); - /* Receiver Reset Cycle */ - s0 = 0; - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, 5); - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 0); - - /* Call FW to make the change */ - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); - - xgbe_phy_complete_ratechange(pdata); + xgbe_phy_perform_ratechange(pdata, 5, 0); netif_dbg(pdata, link, pdata->netdev, "receiver reset complete\n"); } @@ -1746,14 +1739,8 @@ static void xgbe_phy_power_off(struct xgbe_prv_data *pdata) { struct xgbe_phy_data *phy_data = pdata->phy_data; - xgbe_phy_start_ratechange(pdata); - - /* Call FW to make the change */ - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, 0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); - - xgbe_phy_complete_ratechange(pdata); + /* Power off */ + xgbe_phy_perform_ratechange(pdata, 0, 0); phy_data->cur_mode = XGBE_MODE_UNKNOWN; @@ -1763,33 +1750,21 @@ static void xgbe_phy_power_off(struct xgbe_prv_data *pdata) static void xgbe_phy_sfi_mode(struct xgbe_prv_data *pdata) { struct xgbe_phy_data *phy_data = pdata->phy_data; - unsigned int s0; xgbe_phy_set_redrv_mode(pdata); - xgbe_phy_start_ratechange(pdata); - /* 10G/SFI */ - s0 = 0; - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, 3); if (phy_data->sfp_cable != XGBE_SFP_CABLE_PASSIVE) { - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 0); + xgbe_phy_perform_ratechange(pdata, 3, 0); } else { if (phy_data->sfp_cable_len <= 1) - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 1); + xgbe_phy_perform_ratechange(pdata, 3, 1); else if (phy_data->sfp_cable_len <= 3) - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 2); + xgbe_phy_perform_ratechange(pdata, 3, 2); else - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 3); + xgbe_phy_perform_ratechange(pdata, 3, 3); } - /* Call FW to make the change */ - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); - - xgbe_phy_complete_ratechange(pdata); - phy_data->cur_mode = XGBE_MODE_SFI; netif_dbg(pdata, link, pdata->netdev, "10GbE SFI mode set\n"); @@ -1798,23 +1773,11 @@ static void xgbe_phy_sfi_mode(struct xgbe_prv_data *pdata) static void xgbe_phy_x_mode(struct xgbe_prv_data *pdata) { struct xgbe_phy_data *phy_data = pdata->phy_data; - unsigned int s0; xgbe_phy_set_redrv_mode(pdata); - xgbe_phy_start_ratechange(pdata); - /* 1G/X */ - s0 = 0; - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, 1); - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 3); - - /* Call FW to make the change */ - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); - - xgbe_phy_complete_ratechange(pdata); + xgbe_phy_perform_ratechange(pdata, 1, 3); phy_data->cur_mode = XGBE_MODE_X; @@ -1824,23 +1787,11 @@ static void xgbe_phy_x_mode(struct xgbe_prv_data *pdata) static void xgbe_phy_sgmii_1000_mode(struct xgbe_prv_data *pdata) { struct xgbe_phy_data *phy_data = pdata->phy_data; - unsigned int s0; xgbe_phy_set_redrv_mode(pdata); - xgbe_phy_start_ratechange(pdata); - /* 1G/SGMII */ - s0 = 0; - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, 1); - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 2); - - /* Call FW to make the change */ - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); - - xgbe_phy_complete_ratechange(pdata); + xgbe_phy_perform_ratechange(pdata, 1, 2); phy_data->cur_mode = XGBE_MODE_SGMII_1000; @@ -1850,23 +1801,11 @@ static void xgbe_phy_sgmii_1000_mode(struct xgbe_prv_data *pdata) static void xgbe_phy_sgmii_100_mode(struct xgbe_prv_data *pdata) { struct xgbe_phy_data *phy_data = pdata->phy_data; - unsigned int s0; xgbe_phy_set_redrv_mode(pdata); - xgbe_phy_start_ratechange(pdata); - - /* 1G/SGMII */ - s0 = 0; - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, 1); - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 1); - - /* Call FW to make the change */ - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); - - xgbe_phy_complete_ratechange(pdata); + /* 100M/SGMII */ + xgbe_phy_perform_ratechange(pdata, 1, 1); phy_data->cur_mode = XGBE_MODE_SGMII_100; @@ -1876,23 +1815,11 @@ static void xgbe_phy_sgmii_100_mode(struct xgbe_prv_data *pdata) static void xgbe_phy_kr_mode(struct xgbe_prv_data *pdata) { struct xgbe_phy_data *phy_data = pdata->phy_data; - unsigned int s0; xgbe_phy_set_redrv_mode(pdata); - xgbe_phy_start_ratechange(pdata); - /* 10G/KR */ - s0 = 0; - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, 4); - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 0); - - /* Call FW to make the change */ - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); - - xgbe_phy_complete_ratechange(pdata); + xgbe_phy_perform_ratechange(pdata, 4, 0); phy_data->cur_mode = XGBE_MODE_KR; @@ -1902,23 +1829,11 @@ static void xgbe_phy_kr_mode(struct xgbe_prv_data *pdata) static void xgbe_phy_kx_2500_mode(struct xgbe_prv_data *pdata) { struct xgbe_phy_data *phy_data = pdata->phy_data; - unsigned int s0; xgbe_phy_set_redrv_mode(pdata); - xgbe_phy_start_ratechange(pdata); - /* 2.5G/KX */ - s0 = 0; - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, 2); - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 0); - - /* Call FW to make the change */ - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); - - xgbe_phy_complete_ratechange(pdata); + xgbe_phy_perform_ratechange(pdata, 2, 0); phy_data->cur_mode = XGBE_MODE_KX_2500; @@ -1928,23 +1843,11 @@ static void xgbe_phy_kx_2500_mode(struct xgbe_prv_data *pdata) static void xgbe_phy_kx_1000_mode(struct xgbe_prv_data *pdata) { struct xgbe_phy_data *phy_data = pdata->phy_data; - unsigned int s0; xgbe_phy_set_redrv_mode(pdata); - xgbe_phy_start_ratechange(pdata); - /* 1G/KX */ - s0 = 0; - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, COMMAND, 1); - XP_SET_BITS(s0, XP_DRIVER_SCRATCH_0, SUB_COMMAND, 3); - - /* Call FW to make the change */ - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_0, s0); - XP_IOWRITE(pdata, XP_DRIVER_SCRATCH_1, 0); - XP_IOWRITE_BITS(pdata, XP_DRIVER_INT_REQ, REQUEST, 1); - - xgbe_phy_complete_ratechange(pdata); + xgbe_phy_perform_ratechange(pdata, 1, 3); phy_data->cur_mode = XGBE_MODE_KX_1000;