From patchwork Mon Aug 28 20:29:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 806759 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="B5kbQ+79"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xh3KX3mmmz9s81 for ; Tue, 29 Aug 2017 06:29:52 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751306AbdH1U3q (ORCPT ); Mon, 28 Aug 2017 16:29:46 -0400 Received: from mail-by2nam01on0064.outbound.protection.outlook.com ([104.47.34.64]:8096 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751213AbdH1U3l (ORCPT ); Mon, 28 Aug 2017 16:29:41 -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=U0IU+SwPpFrhWRpck3mMQvltjmfU5v8xZUI70eVjBww=; b=B5kbQ+79PXeUm61ij6sY5d+BepIPzSmmzILjOb77hE87M4/Pwtvc9z3deam05hR9pCaFmNw8W7ahX54hUqtILgkff3xp3py2B+cpfuW3JHA/bUJXp8cnKKwjkj63J15LrbBbkc3BxuCYjpYHHkTxsRvVLIb3hTWtGjhD7ygwlhs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Received: from tlendack-t1.amdoffice.net (165.204.77.1) by BN6PR12MB1139.namprd12.prod.outlook.com (10.168.226.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1385.9; Mon, 28 Aug 2017 20:29:38 +0000 From: Tom Lendacky Subject: [PATCH net-next v1] amd-xgbe: Interrupt summary bits are h/w version dependent To: netdev@vger.kernel.org Cc: David Miller Date: Mon, 28 Aug 2017 15:29:34 -0500 Message-ID: <20170828202934.17073.940.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: MWHPR14CA0018.namprd14.prod.outlook.com (10.173.227.28) To BN6PR12MB1139.namprd12.prod.outlook.com (10.168.226.141) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c3f675b6-ab3f-429d-2f20-08d4ee5381b0 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BN6PR12MB1139; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1139; 3:VJdP/HKaxrLhrW+MGWyfXepjyVKFLVoNhopZ4AZx+BlOI7HVufEtHpXQNm7h6iZmzFitnJLdDHGkfPnE+BnnaPwCiPXcmvA+MMLzZ0gG8nFNe7tR4yZg+TfXJ05bZ3gPEQciR/83SByhrYTjy7wIma3DEf1VhE+JZVTzdQnoVHQvQ3aF2aiFuerIvnAVnLubEr7GgBJqFFB4fRMcDk/werK77HvG75XrsWYRjB04YClQle0eUR81ovl+/dgwOxdk; 25:hASiT8hIocH9Z8AiLqedBdCPnhwSfhmQTdq0kLiAK2/fvdkdjU/j9khhxV4QwCbAFUK+0GCDDEXU+DD6ZRncTEdJnZTSRdutroAiv6pZvMIdPZSvU/FZ5BALZBwS6ucD0fk7q621xarR5FTYRC86C1oSHKgvVofpbdvlpT+AuksYweIv3871vFUIJnM2SgFHF5TA3r7ja+4lgiJkhioglBBzbxCmwisZugtjUMw+bUmFSPbGZ8O/UWfbjaBB4vgnYSk5i59RFYRAFS+0N/YRfVLqoVKbUh40Yub+hcJQPJFkwohQGzq9Zt/71QgKpxJHYwAzpYAhufi8eBTxCWkrMA==; 31:mja+b5tMSQjw4/A3T6rtBTLh7WMVgXTXIad6HE+fma4KAvakFkkD5MKlhcH24iypJH9VFcA46K5Vk+Qcb+wBUtiwJsN1FDdovUvc8y0TShPcjFqW3TOspPSIK+EU9IQHqw0xenvNv4kpCZNV/wrxh1o56rqHN4E8m8RQnKiVFz/kWRRKh6BKxfQK4W3q+0LDQYW3qmqlIpb/hTcImpbACAxeQm/TtJc2Z3t4/t/EUyY= X-MS-TrafficTypeDiagnostic: BN6PR12MB1139: X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1139; 20:g8hLleBoL/k/8VBfl4CHVCmWFdCckhIWSZN0GmQuTE5L8fF1qyaOkHVnF7U0Upn6MFmMILlc8OVcqbCYTVgvDrIf2nJfg4lJHFe9OG1qLP1KscnDgJttme8tzOptYoWMh/rsbDumrHpeWOvGCRdqDArHiB70iBN9ZbsBO/o9eZVQxGHuvVM7xxr6InISLzgwCYSFB1NJ0Go+IDTLnlya9JZqyRrH8pIxEbnd/iezj4v+l/xiZXdK/iP/AwkyEv+r8DpSqQ4zoZxMcwj2y4IRwq6qmVVzcjB2dt15y4iYo2vTM0+7IyC3ZQGBD7hOg8Q4ESoYb3LrZkx+zCFhlBW8SlntgGhS8d8EH1Pnnmf9KfMFb9nIRvSmRdHX+RTdRW1WvOgAljT7AfCalYLWYyjlXM0Y1c+4rtQPorQgUr4QRMbbglKp8/oEMbhhK9fe6PFOHQDys5EZc5IqrAQ0UPGBDsJyRrhIgOnfhFI08BVKHMzzy0QujxS4ShoNAArdwMxb; 4:dSXff+JdCHaVehS0cIczNaxnXmW9h2oxe7Zy3qhXLOQ7gtaJ5lktVKNQzIYeB8mAcm+n3LQvkh0sQNS6VV0YuLFCM2/NP9YIU8sAzWH7f9jRh+B//H4i1TpBa/Yw2lsL27RbTMRuuRfYK7GpXsox20bsZjFdslXxydO8YZngcYQzO96Z5LHqA15Y0eftpvWJ4gA7hiqHdB266cbAXpcuu0w89SitkuavNyw/IDmeCCVbKC0o7DziWzd/Iq3MlOaDj/1f7RXqM3myxgOPWJy7bigJWCa08H2Jp78NT4TvsDU= X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123564025)(20161123555025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR12MB1139; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR12MB1139; X-Forefront-PRVS: 0413C9F1ED X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(39860400002)(189002)(199003)(23676002)(110136004)(86362001)(5660300001)(72206003)(9686003)(55016002)(33646002)(4326008)(53936002)(101416001)(103116003)(189998001)(50466002)(7350300001)(42186005)(69596002)(53416004)(2361001)(97736004)(2351001)(4001350100001)(105586002)(106356001)(68736007)(305945005)(81156014)(81166006)(8676002)(7736002)(47776003)(66066001)(97746001)(83506001)(6666003)(1076002)(25786009)(2906002)(3846002)(54356999)(230700001)(6116002)(6506006)(50986999)(478600001)(6916009); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR12MB1139; 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?q?1=3BBN6PR12MB1139=3B23=3AVemV?= =?utf-8?q?4l0TGetkI862ohM6QTt9a0hCHlgpAH+bQeiZmaEkb9K9evJ/S9UJMtKP?= =?utf-8?q?xVIhFM5VSfW2yd4wWc3guj7SadCAJQNiTQLLbTQdhgd5+HPfRgIcziEe?= =?utf-8?q?xhy9aGx7ZrieWzm9mERz7u25j+TFjgpCL0jMbd3z6zcp6SFgZC2e27dC?= =?utf-8?q?1V2LXbJ4VYa48Q9wohlPgJXo34/v9i+sZHVE580WHcdZ1CGqZw3+FSFY?= =?utf-8?q?0yeN/Er9ccju/FExbg+udmCCWUQEfT5x12oBWVHPTEJiRk0rT6rjfpSq?= =?utf-8?q?zU8/rnOgBeIXJ7CZJpeDsNSd4ndpyxbliB79jkiRPKH06t+TdzeDkDhR?= =?utf-8?q?NqYfC0aCqQ9SnFCR1iJB3n4FK6bfoypkETnWnyCKHeF+uoVTTKiZMVwu?= =?utf-8?q?ihz+q1/4wm3WlsC3oMdE1K39xBL1XdX0DXWAHawv8VxmLD30Q8vRXraw?= =?utf-8?q?g6xt3N/QUL+Vh+yn/krTDLEyN8oav+yOGuYEN8qbvCz54wIMG3knlovj?= =?utf-8?q?6UDNCFyssfOM2yUV8ZEYEym1zON60OOUCUAMlaCkABK8zk25PP2ztcm/?= =?utf-8?q?VT2Y3QDzxJgNZNkWAy1AScuV7NkOuYREAyVYPlTAT/nUnqJD/zpg1mlI?= =?utf-8?q?lNr0d2OmU5M5buNQwoE4vElz5qK/2/aSggpUVsRnR/zppVrptMMNiOx2?= =?utf-8?q?5GqCbVqTObEAKBDU2wFvZuFqqP+uIOLmDGXLcD/ZRvrDib8f5euEsudY?= =?utf-8?q?hKr1tEGfTg57U/9L7yZJN38U1VJZUzxqs9ejLznc9FNLpdHpY9zip5up?= =?utf-8?q?AnThLdMEOLv4tg9dR98SMV7XN+fut4gc1L9LUIl4F1wV8s9r0FNmRIiJ?= =?utf-8?q?pa+4sCPF31mwLkCwKeIiGPJWDf2DauFrkBkwSDJXR/7ANmma1E7ixa/u?= =?utf-8?q?cnj6Miod0CiMAeJRjGTmnRw/UXKTUzBs2lvdPvYmadDS0ZVHXHsgrEGc?= =?utf-8?q?FDuqwEe/VTVUlwYmAWVZaN0oV49OXN1ZNpyDwQC+pJZnHCD7m9IdBRab?= =?utf-8?q?Q5PFtr0jN8eNNAn8JGE8aM7G+c68Xm4vZ+mmGEtSZfHCKFKT3EvtPodv?= =?utf-8?q?5T8pZazfElM/lD0SXWzI0YDY/xpviEXchPqbrYwSQpr0JSfUiMY1Gq95?= =?utf-8?q?5bKRzWbxttjGpKhBtbCeQvROX+0P7TlJBeCG+ViQRzDe4JPnirY6YmhW?= =?utf-8?q?HiKb/FuuCgNYEWwKucUK95CQmqFoGEntPZHiczj8g8hOOS7teCqKf2HZ?= =?utf-8?q?id9ekCEH+w9cMNIbYsVuhaY=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1139; 6:fvkBMg6dAujvZxKNvPk+8RdZDDctziCNIl+cYpMukobkUret+U22uwS0s5tM+GzsDjsEQFAzugdPPquKO60qmqefD3AnEzsOY+/sEYcLwBS18AJ9rO+a4mWJ2Wc5lSPM30nE9YNzAwl+EGihcP3MdJs58QhRR4wsxB2iBcXcFhdh4rkeHERO8A9R3tmUQv+UljRR5zFlE5tC+yE9oDHJa036oilM3MQWMJrfrc8JEY71SURVdmFNyj6CdkEdcxd6NiijrtDB/77+6qNo8VUlNUdswU4F6/txl76HC48HrP32NXKnm0JFoDLd4gMJ5KhdpzFkvicey57/UaCKXFrkGg==; 5:Y2BLo7X65USmS/OQhb2qITAORQoDYwB6MSvE9X6/NJfQBCycFqJtD/S7I4rsMpaD0YWyxfPAZe3ABp37PzZuqSkY3F9CnNDf3v/LLXOqhczRWGRtiOhTfBgg2Uj6Y3Idax3AT3Qi798sAT3l0ClM2w==; 24:q272ok9kfgnisLGKJSggnKzSoxHIA+qrJmg8HZ+6aG6DJcqIZ66iB2YlR6Dkrj06/6KnLsiAvFhWt3yQtzs1nJFr/WEe45OfMF/I2CI9o60=; 7:XeSCGf2T0wtqBXubxkEgXf+vkPeW5rn97eSl7ilTK8Zg86VpJ1TtB82JElpLVJElr+ximAKZDM4gOS914bW7+/gncr74z1/4HiYrsOLN6TgU2tJ4Zmfyz72Khf5KZmbgk0h/nktvdE1jrT5Owylyvot3V/xfCidCldXOhwVtHO8epCRIsz2E4DWwJAoGs2NEWj63yw+6+wKHNGiF1ap8/cHwojIQU78GPj52BMqhNNQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1139; 20:3BfjhN/XGChaAbIAOuysHMm1LGJbmCdpDq9AXd6S/gLeAd2yqkatPGfC3+zte/LzyV14dSoCEQgp5v6J3vMDWceGMXRG6SmtjtaQqQGHAOqSHRyjPBchpAosXKdFMIegf5hPJL1s7BEKEvnMsZmpimau74VQhuAqfzfRZ16WTSvWIcCVk2y3i5uC5xk0PPOiVmkDzFchgBKIYJOvv7oqJ0Cpli3lSuaeOh33/pdKuplmFSFKG/S37lJ7GAuPNNoJ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2017 20:29:38.4867 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1139 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org There is a difference in the bit position of the normal interrupt summary enable (NIE) and abnormal interrupt summary enable (AIE) between revisions of the hardware. For older revisions the NIE and AIE bits are positions 16 and 15 respectively. For newer revisions the NIE and AIE bits are positions 15 and 14. The effect in changing the bit position is that newer hardware won't receive AIE interrupts in the current version of the driver. Specifically, the driver uses this interrupt to collect statistics on when a receive buffer unavailable event occurs and to restart the driver/device when a fatal bus error occurs. Update the driver to set the interrupt enable bit based on the reported version of the hardware. Signed-off-by: Tom Lendacky --- drivers/net/ethernet/amd/xgbe/xgbe-common.h | 8 ++++++-- drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 13 ++++++++++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-common.h b/drivers/net/ethernet/amd/xgbe/xgbe-common.h index 9431330..7ea72ef 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-common.h +++ b/drivers/net/ethernet/amd/xgbe/xgbe-common.h @@ -210,11 +210,15 @@ #define DMA_CH_CR_PBLX8_WIDTH 1 #define DMA_CH_CR_SPH_INDEX 24 #define DMA_CH_CR_SPH_WIDTH 1 -#define DMA_CH_IER_AIE_INDEX 15 +#define DMA_CH_IER_AIE20_INDEX 15 +#define DMA_CH_IER_AIE20_WIDTH 1 +#define DMA_CH_IER_AIE_INDEX 14 #define DMA_CH_IER_AIE_WIDTH 1 #define DMA_CH_IER_FBEE_INDEX 12 #define DMA_CH_IER_FBEE_WIDTH 1 -#define DMA_CH_IER_NIE_INDEX 16 +#define DMA_CH_IER_NIE20_INDEX 16 +#define DMA_CH_IER_NIE20_WIDTH 1 +#define DMA_CH_IER_NIE_INDEX 15 #define DMA_CH_IER_NIE_WIDTH 1 #define DMA_CH_IER_RBUE_INDEX 7 #define DMA_CH_IER_RBUE_WIDTH 1 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c index 671203d..e107e18 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c @@ -649,13 +649,15 @@ static void xgbe_config_flow_control(struct xgbe_prv_data *pdata) static void xgbe_enable_dma_interrupts(struct xgbe_prv_data *pdata) { struct xgbe_channel *channel; - unsigned int i; + unsigned int i, ver; /* Set the interrupt mode if supported */ if (pdata->channel_irq_mode) XGMAC_IOWRITE_BITS(pdata, DMA_MR, INTM, pdata->channel_irq_mode); + ver = XGMAC_GET_BITS(pdata->hw_feat.version, MAC_VR, SNPSVER); + for (i = 0; i < pdata->channel_count; i++) { channel = pdata->channel[i]; @@ -671,8 +673,13 @@ static void xgbe_enable_dma_interrupts(struct xgbe_prv_data *pdata) * AIE - Abnormal Interrupt Summary Enable * FBEE - Fatal Bus Error Enable */ - XGMAC_SET_BITS(channel->curr_ier, DMA_CH_IER, NIE, 1); - XGMAC_SET_BITS(channel->curr_ier, DMA_CH_IER, AIE, 1); + if (ver < 0x21) { + XGMAC_SET_BITS(channel->curr_ier, DMA_CH_IER, NIE20, 1); + XGMAC_SET_BITS(channel->curr_ier, DMA_CH_IER, AIE20, 1); + } else { + XGMAC_SET_BITS(channel->curr_ier, DMA_CH_IER, NIE, 1); + XGMAC_SET_BITS(channel->curr_ier, DMA_CH_IER, AIE, 1); + } XGMAC_SET_BITS(channel->curr_ier, DMA_CH_IER, FBEE, 1); if (channel->tx_ring) {