From patchwork Fri Apr 26 09:47:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091442 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="OVilnsBO"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8Ny0XqFz9s5c for ; Fri, 26 Apr 2019 19:47:46 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727105AbfDZJro (ORCPT ); Fri, 26 Apr 2019 05:47:44 -0400 Received: from mail-eopbgr790043.outbound.protection.outlook.com ([40.107.79.43]:11168 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726480AbfDZJrm (ORCPT ); Fri, 26 Apr 2019 05:47:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0NjkoBYfhx3zcOTZanPpvloylKMgALcOF92U8yobG0w=; b=OVilnsBO8D6/JXKOcB2VVN1t6dPayoaD/GR4bUyAVuCbc9OzlvzJIFEvk7WdYbMBlid+9LNIMrTmaiRsHKrfRCqQX9AuJNsQxUCuto7Ycz40ai/oKj32F+P2CVTnNCDMASM5tyLX+12fLz9PXX52BX2wzH1ZzIDJxcT8tYPrQW4= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:47:39 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:47:39 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Yana Esina Subject: [PATCH v3 net-next 01/15] net: aquantia: add infrastructure to readout chip temperature Thread-Topic: [PATCH v3 net-next 01/15] net: aquantia: add infrastructure to readout chip temperature Thread-Index: AQHU/BUWW6qH5cbjcUqWVjs0KCyJ+g== Date: Fri, 26 Apr 2019 09:47:39 +0000 Message-ID: <0a378d58cf39e838372492dd6352ad082873d42d.1556270198.git.igor.russkikh@aquantia.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: da6bb4d4-e30b-4c86-81ad-08d6ca2c3860 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:497; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(14444005)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: j+IT4ozJYbKiyhaPzn+YtFskBjMoiqDgtGERXBqfCFtsEqfVX4zMc4rDR/oHLjdYgln41+rNWIChDNzlWkvSCbS75zSK7gabDwLn8YrHyA1G0M0iqMcr4pO3BfRzoFdFZ9cHwonPQ3nwclzaCQa2DWghJZmahua5zyi2barFwxCV7Tpjh0j8H7oWsEejJptVB2SFnFvuk6Ya9Wy5+/Cgb65CtXwnUutDxQDboMQfcBybknz71J+Jmq7CdlvVfqLar/wGxG5gV+P+5cBbSYb5mAegWEpHWs6TaZaLLJfhx23bKHn8DGoNeEqQQeUxHaQlp96Cz8IrjZdYE/bD/JeF9m0NLO7lxd73CyMS1YaemIEC7k+mJo5IfSQn8LdJpUkUZGb1pT18nJSzZCko+eZ5YDxYMiD9c9Px5does0FsMSk= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: da6bb4d4-e30b-4c86-81ad-08d6ca2c3860 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:47:39.5896 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Yana Esina Ability to read the chip temperature from memory via hwmon interface Signed-off-by: Yana Esina Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Reviewed-by: Andrew Lunn --- .../net/ethernet/aquantia/atlantic/aq_hw.h | 2 ++ .../aquantia/atlantic/hw_atl/hw_atl_utils.c | 1 + .../atlantic/hw_atl/hw_atl_utils_fw2x.c | 36 +++++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_hw.h b/drivers/net/ethernet/aquantia/atlantic/aq_hw.h index 81aab73dc22f..f1bc96c6f3b9 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_hw.h +++ b/drivers/net/ethernet/aquantia/atlantic/aq_hw.h @@ -259,6 +259,8 @@ struct aq_fw_ops { int (*update_stats)(struct aq_hw_s *self); + int (*get_phy_temp)(struct aq_hw_s *self, int *temp); + u32 (*get_flow_control)(struct aq_hw_s *self, u32 *fcmode); int (*set_flow_control)(struct aq_hw_s *self); diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c index eb4b99d56081..b521457434fc 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c @@ -960,6 +960,7 @@ const struct aq_fw_ops aq_fw_1x_ops = { .set_state = hw_atl_utils_mpi_set_state, .update_link_status = hw_atl_utils_mpi_get_link_status, .update_stats = hw_atl_utils_update_stats, + .get_phy_temp = NULL, .set_power = aq_fw1x_set_power, .set_eee_rate = NULL, .get_eee_rate = NULL, diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c index fe6c5658e016..fbc9d6ac841f 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils_fw2x.c @@ -38,6 +38,7 @@ #define HW_ATL_FW2X_CTRL_WOL BIT(CTRL_WOL) #define HW_ATL_FW2X_CTRL_LINK_DROP BIT(CTRL_LINK_DROP) #define HW_ATL_FW2X_CTRL_PAUSE BIT(CTRL_PAUSE) +#define HW_ATL_FW2X_CTRL_TEMPERATURE BIT(CTRL_TEMPERATURE) #define HW_ATL_FW2X_CTRL_ASYMMETRIC_PAUSE BIT(CTRL_ASYMMETRIC_PAUSE) #define HW_ATL_FW2X_CTRL_FORCE_RECONNECT BIT(CTRL_FORCE_RECONNECT) @@ -310,6 +311,40 @@ static int aq_fw2x_update_stats(struct aq_hw_s *self) return hw_atl_utils_update_stats(self); } +static int aq_fw2x_get_phy_temp(struct aq_hw_s *self, int *temp) +{ + u32 mpi_opts = aq_hw_read_reg(self, HW_ATL_FW2X_MPI_CONTROL2_ADDR); + u32 temp_val = mpi_opts & HW_ATL_FW2X_CTRL_TEMPERATURE; + u32 phy_temp_offset; + u32 temp_res; + int err = 0; + u32 val; + + phy_temp_offset = self->mbox_addr + + offsetof(struct hw_atl_utils_mbox, info) + + offsetof(struct hw_aq_info, phy_temperature); + /* Toggle statistics bit for FW to 0x36C.18 (CTRL_TEMPERATURE) */ + mpi_opts = mpi_opts ^ HW_ATL_FW2X_CTRL_TEMPERATURE; + aq_hw_write_reg(self, HW_ATL_FW2X_MPI_CONTROL2_ADDR, mpi_opts); + /* Wait FW to report back */ + err = readx_poll_timeout_atomic(aq_fw2x_state2_get, self, val, + temp_val != + (val & HW_ATL_FW2X_CTRL_TEMPERATURE), + 1U, 10000U); + err = hw_atl_utils_fw_downld_dwords(self, phy_temp_offset, + &temp_res, 1); + + if (err) + return err; + + /* Convert PHY temperature from 1/256 degree Celsius + * to 1/1000 degree Celsius. + */ + *temp = temp_res * 1000 / 256; + + return 0; +} + static int aq_fw2x_set_sleep_proxy(struct aq_hw_s *self, u8 *mac) { struct hw_atl_utils_fw_rpc *rpc = NULL; @@ -509,6 +544,7 @@ const struct aq_fw_ops aq_fw_2x_ops = { .set_state = aq_fw2x_set_state, .update_link_status = aq_fw2x_update_link_status, .update_stats = aq_fw2x_update_stats, + .get_phy_temp = aq_fw2x_get_phy_temp, .set_power = aq_fw2x_set_power, .set_eee_rate = aq_fw2x_set_eee_rate, .get_eee_rate = aq_fw2x_get_eee_rate, From patchwork Fri Apr 26 09:47:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091443 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="X5yzrd3z"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8Nz4KCYz9s9G for ; Fri, 26 Apr 2019 19:47:47 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727159AbfDZJrq (ORCPT ); Fri, 26 Apr 2019 05:47:46 -0400 Received: from mail-eopbgr720062.outbound.protection.outlook.com ([40.107.72.62]:52474 "EHLO NAM05-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726525AbfDZJrp (ORCPT ); Fri, 26 Apr 2019 05:47:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=A2dK27+l4o+pUCkf0HyQJZcer3CL9jY2ADyRBGIdJk8=; b=X5yzrd3z3HLNCdbH0TjxEfXvWhx6i6iLZ7lgKrHSVBfQaFbkfwIqP5hdixVn65CG48rvQvGUxdstLAMNQ1Ma77dMuo7VLYK4CsTMDweDj08maMtojUEsNsOVhciubVItIFJxQdnYEruoxeRAs4cRWPpkqM4/sTiQN9DznQzCB24= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:47:42 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:47:42 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Yana Esina Subject: [PATCH v3 net-next 02/15] net: aquantia: implement hwmon api for chip temperature Thread-Topic: [PATCH v3 net-next 02/15] net: aquantia: implement hwmon api for chip temperature Thread-Index: AQHU/BUX/T4VRYOEIkmkOubreWojGw== Date: Fri, 26 Apr 2019 09:47:42 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1c20f31b-6827-4339-6b46-08d6ca2c39e5 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:181; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 7p4MIM4hg2PiI/2tIkufYMw9UaUeQh05Is6v8y+wmrVxyDXyfM7fjCmYgAudB/Yd+bTQg/G9EErqlO6ZkKSi6ncqowD7DnKtTZPLG4O2eccRpS7zp/dKc9tRFsBUhxXr9AExD3QFzgRkeNpM7KGy7UzlblA/Hm7pF39toc9ECu7CD6TxneRyRTGCBv2FnruY0QLPliGevVKqTYcTPCM51zMDjy3xeUPou6w/9LHA5STfwRxj5/NqhVMIiS8Sl3Q97P5sp6gkXU+A5z5Pa1L54kyWkl0nD8YkiEhRV5HgbVDA8AP2uuWJBVR6qpNSaaSHhpfLNYIgOqI9+HodMMhConrcaS0oIwdcbh2oO+nyXZaEUo2+kgojh/swrYKEwPvsJq6BAlPYlho+tcr7VnOUo7dNMgo1cCcmzKbC2zer3Nw= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c20f31b-6827-4339-6b46-08d6ca2c39e5 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:47:42.1404 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Yana Esina Added support for hwmon api to fetch out chip temperature Signed-off-by: Yana Esina Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Reviewed-by: Andrew Lunn --- .../net/ethernet/aquantia/atlantic/Makefile | 1 + .../ethernet/aquantia/atlantic/aq_drvinfo.c | 129 ++++++++++++++++++ .../ethernet/aquantia/atlantic/aq_drvinfo.h | 16 +++ .../ethernet/aquantia/atlantic/aq_pci_func.c | 4 + 4 files changed, 150 insertions(+) create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.c create mode 100644 drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.h diff --git a/drivers/net/ethernet/aquantia/atlantic/Makefile b/drivers/net/ethernet/aquantia/atlantic/Makefile index 4556630ee286..1f99cf832476 100644 --- a/drivers/net/ethernet/aquantia/atlantic/Makefile +++ b/drivers/net/ethernet/aquantia/atlantic/Makefile @@ -36,6 +36,7 @@ atlantic-objs := aq_main.o \ aq_ring.o \ aq_hw_utils.o \ aq_ethtool.o \ + aq_drvinfo.o \ aq_filters.o \ hw_atl/hw_atl_a0.o \ hw_atl/hw_atl_b0.o \ diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.c b/drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.c new file mode 100644 index 000000000000..0a4a20bb6a82 --- /dev/null +++ b/drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.c @@ -0,0 +1,129 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* Copyright (C) 2014-2019 aQuantia Corporation. */ + +/* File aq_drvinfo.c: Definition of common code for firmware info in sys.*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "aq_drvinfo.h" + +static int aq_hwmon_read(struct device *dev, enum hwmon_sensor_types type, + u32 attr, int channel, long *value) +{ + struct aq_nic_s *aq_nic = dev_get_drvdata(dev); + int temp; + int err; + + if (!aq_nic) + return -EIO; + + if (type != hwmon_temp) + return -EOPNOTSUPP; + + if (!aq_nic->aq_fw_ops->get_phy_temp) + return -EOPNOTSUPP; + + switch (attr) { + case hwmon_temp_input: + err = aq_nic->aq_fw_ops->get_phy_temp(aq_nic->aq_hw, &temp); + *value = temp; + return err; + default: + return -EOPNOTSUPP; + } +} + +static int aq_hwmon_read_string(struct device *dev, + enum hwmon_sensor_types type, + u32 attr, int channel, const char **str) +{ + struct aq_nic_s *aq_nic = dev_get_drvdata(dev); + + if (!aq_nic) + return -EIO; + + if (type != hwmon_temp) + return -EOPNOTSUPP; + + if (!aq_nic->aq_fw_ops->get_phy_temp) + return -EOPNOTSUPP; + + switch (attr) { + case hwmon_temp_label: + *str = "PHY Temperature"; + return 0; + default: + return -EOPNOTSUPP; + } +} + +static umode_t aq_hwmon_is_visible(const void *data, + enum hwmon_sensor_types type, + u32 attr, int channel) +{ + if (type != hwmon_temp) + return 0; + + switch (attr) { + case hwmon_temp_input: + case hwmon_temp_label: + return 0444; + default: + return 0; + } +} + +static const struct hwmon_ops aq_hwmon_ops = { + .is_visible = aq_hwmon_is_visible, + .read = aq_hwmon_read, + .read_string = aq_hwmon_read_string, +}; + +static u32 aq_hwmon_temp_config[] = { + HWMON_T_INPUT | HWMON_T_LABEL, + 0, +}; + +static const struct hwmon_channel_info aq_hwmon_temp = { + .type = hwmon_temp, + .config = aq_hwmon_temp_config, +}; + +static const struct hwmon_channel_info *aq_hwmon_info[] = { + &aq_hwmon_temp, + NULL, +}; + +static const struct hwmon_chip_info aq_hwmon_chip_info = { + .ops = &aq_hwmon_ops, + .info = aq_hwmon_info, +}; + +int aq_drvinfo_init(struct net_device *ndev) +{ + struct aq_nic_s *aq_nic = netdev_priv(ndev); + struct device *dev = &aq_nic->pdev->dev; + struct device *hwmon_dev; + int err = 0; + + hwmon_dev = devm_hwmon_device_register_with_info(dev, + ndev->name, + aq_nic, + &aq_hwmon_chip_info, + NULL); + + if (IS_ERR(hwmon_dev)) + err = PTR_ERR(hwmon_dev); + + return err; +} + +void aq_drvinfo_exit(struct net_device *ndev) +{ +} diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.h b/drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.h new file mode 100644 index 000000000000..4adb1f84f550 --- /dev/null +++ b/drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.h @@ -0,0 +1,16 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* Copyright (C) 2014-2017 aQuantia Corporation. */ + +/* File aq_drvinfo.h: Declaration of common code for firmware info in sys.*/ + +#ifndef AQ_DRVINFO_H +#define AQ_DRVINFO_H + +#include "aq_nic.h" +#include "aq_hw.h" +#include "hw_atl/hw_atl_utils.h" + +int aq_drvinfo_init(struct net_device *ndev); +void aq_drvinfo_exit(struct net_device *ndev); + +#endif /* AQ_DRVINFO_H */ diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c index 0217ff4669a4..556b735e5a32 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c @@ -20,6 +20,7 @@ #include "hw_atl/hw_atl_a0.h" #include "hw_atl/hw_atl_b0.h" #include "aq_filters.h" +#include "aq_drvinfo.h" static const struct pci_device_id aq_pci_tbl[] = { { PCI_VDEVICE(AQUANTIA, AQ_DEVICE_ID_0001), }, @@ -289,6 +290,8 @@ static int aq_pci_probe(struct pci_dev *pdev, if (err < 0) goto err_register; + aq_drvinfo_init(ndev); + return 0; err_register: @@ -317,6 +320,7 @@ static void aq_pci_remove(struct pci_dev *pdev) unregister_netdev(self->ndev); aq_nic_free_vectors(self); aq_pci_free_irq_vectors(self); + aq_drvinfo_exit(self->ndev); iounmap(self->aq_hw->mmio); kfree(self->aq_hw); pci_release_regions(pdev); From patchwork Fri Apr 26 09:47:44 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091444 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="JNFkb874"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8P21zlmz9s7T for ; Fri, 26 Apr 2019 19:47:50 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727202AbfDZJrs (ORCPT ); Fri, 26 Apr 2019 05:47:48 -0400 Received: from mail-eopbgr790089.outbound.protection.outlook.com ([40.107.79.89]:20508 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727123AbfDZJrr (ORCPT ); Fri, 26 Apr 2019 05:47:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YEqNA04/Ly2rDim5pzFIuZNuPNbRLrTLyvZk0uHGTKI=; b=JNFkb874zqGrV4Q9d2f0t12FWEgJEr3KAIMpRkNl5wS/ZP4p+G4ZQJol2lqJb72G1h5hYIe9C/Jg1czDmcdgNtO0cvJXnHXfSwoVU4Vwd696VUfaV/Nxf6YoNOOfFqX5bczt69KOZYT7ARFCgMKW8eGRutDFDIEyLlaHxygk4UE= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:47:44 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:47:44 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v3 net-next 03/15] net: aquantia: add link interrupt fields Thread-Topic: [PATCH v3 net-next 03/15] net: aquantia: add link interrupt fields Thread-Index: AQHU/BUZtKJ/CkmClk+bEK0cgDlrvA== Date: Fri, 26 Apr 2019 09:47:44 +0000 Message-ID: <3854edc1fb6285bfcb1c5ccef61e06a78455ec93.1556270198.git.igor.russkikh@aquantia.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1da2c83e-3a8c-4bd6-02e8-08d6ca2c3b6c x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:81; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(14444005)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: a+dAw40rgsNw8b/lYZasSi9ckobgkQfL+JZCj/LuG4xn0m1V21yck6hunpPOeOHyfOhBA3QHVKFdHtwRwbRpz5HvLM1WPi/NG2F7KYpbz0f89dHOOuLFwZMEuiQ7fqTL+/8h9UkMAxKtx2hjgQ6cxmuQzpvBMebqIoeYhNibG/lKqXM3AdGAtPr9D6FIg+uwMt45dJp3JqNi+6h+74Uag/52WbZwj7ytCRkzGBh4vro3n9LMOm7TTeKVYV9e8tg6JcaPdHojWiDBP/tx1CF2CfL3H9/zIItRUQ8+6zUU+JgVuJxk/TiktOAAnTrwAIrNbBCjeYwhsw8gwsE0KltmNC0ffB4wa7akyL3T77nJqGN+dVxLaHNtP4Tik9pYlydl0lM01XMA2vXKakl/jzMtOsmjJTmu/Azst21Q9TSTBcE= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1da2c83e-3a8c-4bd6-02e8-08d6ca2c3b6c X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:47:44.6521 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Declare macroes and nic fields to support link interrupt handling Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Reviewed-by: Andrew Lunn --- drivers/net/ethernet/aquantia/atlantic/aq_hw.h | 2 ++ drivers/net/ethernet/aquantia/atlantic/aq_nic.h | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_hw.h b/drivers/net/ethernet/aquantia/atlantic/aq_hw.h index f1bc96c6f3b9..95fd6c852a9d 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_hw.h +++ b/drivers/net/ethernet/aquantia/atlantic/aq_hw.h @@ -88,6 +88,8 @@ struct aq_stats_s { #define AQ_HW_IRQ_MSI 2U #define AQ_HW_IRQ_MSIX 3U +#define AQ_HW_SERVICE_IRQS 1U + #define AQ_HW_POWER_STATE_D0 0U #define AQ_HW_POWER_STATE_D3 3U diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.h b/drivers/net/ethernet/aquantia/atlantic/aq_nic.h index b1372430f62f..0409cf5ca3ab 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.h +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.h @@ -26,7 +26,8 @@ struct aq_nic_cfg_s { u64 features; u32 rxds; /* rx ring size, descriptors # */ u32 txds; /* tx ring size, descriptors # */ - u32 vecs; /* vecs==allocated irqs */ + u32 vecs; /* allocated rx/tx vectors */ + u32 link_irq_vec; u32 irq_type; u32 itr; u16 rx_itr; From patchwork Fri Apr 26 09:47:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091445 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="OJQV/Nll"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8P32606z9s9G for ; Fri, 26 Apr 2019 19:47:51 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727208AbfDZJrt (ORCPT ); Fri, 26 Apr 2019 05:47:49 -0400 Received: from mail-eopbgr720070.outbound.protection.outlook.com ([40.107.72.70]:25231 "EHLO NAM05-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727199AbfDZJrs (ORCPT ); Fri, 26 Apr 2019 05:47:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3KWLiPzA3Ag4vqNwezW/X4orag1rIKlK1UYHht2+mU4=; b=OJQV/NllJeLUgWThD8hWZOCEoFKyCbtcaVQn4ba9rKRiCsY6Xw1jNYT9oI5utiJ+9XPj0y/ct+C0xU8jP2Rq8MDd6RsRrHMh2W1wUDTR0MIPCipzz83EC83I3DtDVEXQEyC37wvvWwdX+jKvSRInPZjXZ93NAPg3m7mnBfjAWwY= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:47:47 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:47:47 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v3 net-next 04/15] net: aquantia: link interrupt handling function Thread-Topic: [PATCH v3 net-next 04/15] net: aquantia: link interrupt handling function Thread-Index: AQHU/BUaS5Yp5a3soE2fzoLBnf+wBQ== Date: Fri, 26 Apr 2019 09:47:47 +0000 Message-ID: <45b9a5e6fb2f486900652a0b1381e6dbe0c8b380.1556270198.git.igor.russkikh@aquantia.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2f5a9bc1-e5b0-4519-e664-08d6ca2c3ce9 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:88; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(14444005)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(4744005)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: LNyi+gE2OPfwYghVWNilLCHqvREsoxuyhyDGZTpSgil4no8Niy25zDCG4r0tYVmrEv5A8grflKIwa4rr7bi3Xu487Yl7A4PpapvbVY5Z4cBC3TFXndLdM5sGmg/FMjk6LDvb3Cc5bJ51wIJ0/DjNqsbziegaQSm1Dmry6VP7J3CTzGPsKeL374nvu7eu397JusRixca2AphfOq2B7AhFYiPYuyRa2QWKp87iYKcZiUFxs/uRX6JAzszSMriOGtei1azwUbjObP7wC/6TAXXQonggO8CqBRGEff96wFFY/mOV6JK2Xr33Gwh3YwKL1OpSXQCemfPV8us3eCDFDx+GUC0wG1mrpqmx7+duZYn3vMMW9K/k1KhctMnD9hQcwpjZBEWdVw7YXU6P0ezwaRbqBZ4EWnSlPkZCI7n9oTIpJpU= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2f5a9bc1-e5b0-4519-e664-08d6ca2c3ce9 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:47:47.1759 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Define link interrupt handler Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh --- drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c index 059df86e8e37..4851fc0a3ae5 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c @@ -161,6 +161,20 @@ static int aq_nic_update_link_status(struct aq_nic_s *self) return 0; } +static irqreturn_t aq_linkstate_threaded_isr(int irq, void *private) +{ + struct aq_nic_s *self = private; + + if (!self) + return IRQ_NONE; + + aq_nic_update_link_status(self); + + self->aq_hw_ops->hw_irq_enable(self->aq_hw, + BIT(self->aq_nic_cfg.link_irq_vec)); + return IRQ_HANDLED; +} + static void aq_nic_service_timer_cb(struct timer_list *t) { struct aq_nic_s *self = from_timer(self, t, service_timer); From patchwork Fri Apr 26 09:47:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091447 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="bH6TI/jj"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8PF1Zndz9s7T for ; Fri, 26 Apr 2019 19:48:01 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727220AbfDZJr4 (ORCPT ); Fri, 26 Apr 2019 05:47:56 -0400 Received: from mail-eopbgr720081.outbound.protection.outlook.com ([40.107.72.81]:27024 "EHLO NAM05-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727199AbfDZJrz (ORCPT ); Fri, 26 Apr 2019 05:47:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VklT4VxBfWXtbh3Qdc6cS+PzzAwF9HRYsc10gA7PKoo=; b=bH6TI/jj0W7zCYSDb46KDdgmnQbOxPHB1tC3xIlGiXMb4AS3q0fmyxKHq/bFP9Bt7s4tHbBmP8XwU1RlqUOSMvj4Gilc+u0VW/H/iw4S4wWT/9/10nOfMGw3bJCWn03ajJJK0D3a/UCgVIaPIYHTUEE/YLbmBhVPxkheeh0EXkM= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:47:50 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:47:50 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v3 net-next 05/15] net: aquantia: create global service workqueue Thread-Topic: [PATCH v3 net-next 05/15] net: aquantia: create global service workqueue Thread-Index: AQHU/BUcSN96+ptnl0ic+jFg0HyM/w== Date: Fri, 26 Apr 2019 09:47:50 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b9de214a-67c2-47dc-740d-08d6ca2c3e6b x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(14444005)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 39NyV0/8w6EUu45wiUTcLNmdkJeC1Y/pK7PunJVmPy8rW/pBViiZmZplWmkpzDfZYwChwjqn4MQS8WDQUKgcxDfm1xMEZP2+z6yv5vVqHNy5efgq8Ipb1XQcrIj4rXyB50bCq+cgXJjB6iI1Eo71VATOSMhxfrykfbzlf/JUaD5mxJAgMf8YS0MBVtOxN2XeQ/bg4+zRkrsXGHrfforPcTgEXqnTpu4/48M2celD9ut8fJzqtSYr1NYl+/ZVHZup3F/CPirptclzGt4AgiIBQcA9acZWFeUOSH7/2pOpnojj3eleRbKLSyXqwGf2GkQ8jIypfg3MVZZawwvFhJ5uO8UulIcr6cKwIO5ssBDHanKxOIGPII5HRbHMBOuomM8ULLlwXd+zbNftNONV1IcuAuKYwx/fX/KQUh+sAD437Mw= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: b9de214a-67c2-47dc-740d-08d6ca2c3e6b X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:47:50.4672 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Nikita Danilov We need this to schedule link interrupt handling and various service tasks. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Reviewed-by: Andrew Lunn --- .../net/ethernet/aquantia/atlantic/aq_main.c | 41 +++++++++++++++++++ .../net/ethernet/aquantia/atlantic/aq_main.h | 2 + .../ethernet/aquantia/atlantic/aq_pci_func.c | 11 ++++- .../ethernet/aquantia/atlantic/aq_pci_func.h | 3 ++ 4 files changed, 56 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_main.c b/drivers/net/ethernet/aquantia/atlantic/aq_main.c index 2a11c1eefd8f..7f45e9908582 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_main.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_main.c @@ -23,8 +23,17 @@ MODULE_VERSION(AQ_CFG_DRV_VERSION); MODULE_AUTHOR(AQ_CFG_DRV_AUTHOR); MODULE_DESCRIPTION(AQ_CFG_DRV_DESC); +const char aq_ndev_driver_name[] = AQ_CFG_DRV_NAME; + static const struct net_device_ops aq_ndev_ops; +static struct workqueue_struct *aq_ndev_wq; + +void aq_ndev_schedule_work(struct work_struct *work) +{ + queue_work(aq_ndev_wq, work); +} + struct net_device *aq_ndev_alloc(void) { struct net_device *ndev = NULL; @@ -209,3 +218,35 @@ static const struct net_device_ops aq_ndev_ops = { .ndo_vlan_rx_add_vid = aq_ndo_vlan_rx_add_vid, .ndo_vlan_rx_kill_vid = aq_ndo_vlan_rx_kill_vid, }; + +static int __init aq_ndev_init_module(void) +{ + int ret; + + aq_ndev_wq = create_singlethread_workqueue(aq_ndev_driver_name); + if (!aq_ndev_wq) { + pr_err("Failed to create workqueue\n"); + return -ENOMEM; + } + + ret = aq_pci_func_register_driver(); + if (ret) { + destroy_workqueue(aq_ndev_wq); + return ret; + } + + return 0; +} + +static void __exit aq_ndev_exit_module(void) +{ + aq_pci_func_unregister_driver(); + + if (aq_ndev_wq) { + destroy_workqueue(aq_ndev_wq); + aq_ndev_wq = NULL; + } +} + +module_init(aq_ndev_init_module); +module_exit(aq_ndev_exit_module); diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_main.h b/drivers/net/ethernet/aquantia/atlantic/aq_main.h index ce92152eb43e..5448b82fb7ea 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_main.h +++ b/drivers/net/ethernet/aquantia/atlantic/aq_main.h @@ -13,7 +13,9 @@ #define AQ_MAIN_H #include "aq_common.h" +#include "aq_nic.h" +void aq_ndev_schedule_work(struct work_struct *work); struct net_device *aq_ndev_alloc(void); #endif /* AQ_MAIN_H */ diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c index 556b735e5a32..151efd8f21d8 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c @@ -369,4 +369,13 @@ static struct pci_driver aq_pci_ops = { .shutdown = aq_pci_shutdown, }; -module_pci_driver(aq_pci_ops); +int aq_pci_func_register_driver(void) +{ + return pci_register_driver(&aq_pci_ops); +} + +void aq_pci_func_unregister_driver(void) +{ + pci_unregister_driver(&aq_pci_ops); +} + diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.h b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.h index aeee67bf69fa..799c5e0d653b 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.h +++ b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.h @@ -29,4 +29,7 @@ int aq_pci_func_alloc_irq(struct aq_nic_s *self, unsigned int i, void aq_pci_func_free_irqs(struct aq_nic_s *self); unsigned int aq_pci_func_get_irq_type(struct aq_nic_s *self); +int aq_pci_func_register_driver(void); +void aq_pci_func_unregister_driver(void); + #endif /* AQ_PCI_FUNC_H */ From patchwork Fri Apr 26 09:47:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091446 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="mpV0Cf8F"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8PC2RgMz9s5c for ; Fri, 26 Apr 2019 19:47:59 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727243AbfDZJr5 (ORCPT ); Fri, 26 Apr 2019 05:47:57 -0400 Received: from mail-eopbgr720081.outbound.protection.outlook.com ([40.107.72.81]:27024 "EHLO NAM05-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726199AbfDZJr4 (ORCPT ); Fri, 26 Apr 2019 05:47:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DXDih1vj4P7M5N3ZkkSxSZXIUs6Q/bnI5oanSi4VZJM=; b=mpV0Cf8Fx2bL6nxWIuDDXo0jULio9ZLYqwLTizU0CgsznS31Nq1kuklKynWUZBku8QqHRW559m6MxKVDIsQAYCiRrBh+8p7oYCEt0LBR+3fN16sV7qyWNlKZ3WWNGYM5oBFydk2HsYjubP49z/Dpi4CvB5tlQ2NsxDaf3juIIKQ= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:47:52 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:47:52 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh Subject: [PATCH v3 net-next 06/15] net: aquantia: link status irq handling Thread-Topic: [PATCH v3 net-next 06/15] net: aquantia: link status irq handling Thread-Index: AQHU/BUdVIzy7zVkv0eIRD7rJEeqJg== Date: Fri, 26 Apr 2019 09:47:52 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 56cc2129-93c6-4adb-2bd4-08d6ca2c403d x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:345; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(14444005)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: cKyu3aoyewq5QqVyv6mUwJawclTUj2xpLrt3znzeJWvgTTh9uBk+e+Iud2+QPn1x9sOctlMYst0vCTFBhLOMXPmDGo8YL5dz4/ep/uh3lmWNHz1v91Cu+54/3TaIv+GQ7QEFYtSvjNv2eIBRFTmEdVitaCXAxrddnnrAWLaVgnjTeNvJ1tOVwXDGH/5VPZ452ldT0IqLn7EoxMJBLcYzxYZg0yMphOHiwaf833Swv+0eNOTqKBys4mz4qQzKdTFvBh/qWcXUoHROf9cU/9HkSTofHWwMLkG2UDZGVw4MHJukDn0iU+DIR4bap/rHnhjxO2lLguKfvZ8mJ/rhOIi5oWWqg6SYVBGYzblmI6kjgJWOVYld+sQyK9HS4elcjneo+BT1KOR9OceEx1PAoVc6pE9gMfwk0evst7Z6HpRGt5s= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 56cc2129-93c6-4adb-2bd4-08d6ca2c403d X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:47:52.7808 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Here we define and request an extra interrupt line, assign it on link isr handler and restructure abit aq_pci code to better support that. We also remove logic for using different timer intervals depending on link state, since thats now useless. Signed-off-by: Igor Russkikh Reviewed-by: Andrew Lunn --- .../net/ethernet/aquantia/atlantic/aq_nic.c | 36 ++++++++++++++----- .../ethernet/aquantia/atlantic/aq_pci_func.c | 24 ++++++++----- .../ethernet/aquantia/atlantic/aq_pci_func.h | 4 +-- .../aquantia/atlantic/hw_atl/hw_atl_b0.c | 5 +++ 4 files changed, 50 insertions(+), 19 deletions(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c index 4851fc0a3ae5..0251566b66af 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c @@ -14,6 +14,7 @@ #include "aq_vec.h" #include "aq_hw.h" #include "aq_pci_func.h" +#include "aq_main.h" #include #include @@ -92,7 +93,8 @@ void aq_nic_cfg_start(struct aq_nic_s *self) /*rss rings */ cfg->vecs = min(cfg->aq_hw_caps->vecs, AQ_CFG_VECS_DEF); cfg->vecs = min(cfg->vecs, num_online_cpus()); - cfg->vecs = min(cfg->vecs, self->irqvecs); + if (self->irqvecs > AQ_HW_SERVICE_IRQS) + cfg->vecs = min(cfg->vecs, self->irqvecs - AQ_HW_SERVICE_IRQS); /* cfg->vecs should be power of 2 for RSS */ if (cfg->vecs >= 8U) cfg->vecs = 8U; @@ -116,6 +118,15 @@ void aq_nic_cfg_start(struct aq_nic_s *self) cfg->vecs = 1U; } + /* Check if we have enough vectors allocated for + * link status IRQ. If no - we'll know link state from + * slower service task. + */ + if (AQ_HW_SERVICE_IRQS > 0 && cfg->vecs + 1 <= self->irqvecs) + cfg->link_irq_vec = cfg->vecs; + else + cfg->link_irq_vec = 0; + cfg->link_speed_msk &= cfg->aq_hw_caps->link_speed_msk; cfg->features = cfg->aq_hw_caps->hw_features; } @@ -178,7 +189,6 @@ static irqreturn_t aq_linkstate_threaded_isr(int irq, void *private) static void aq_nic_service_timer_cb(struct timer_list *t) { struct aq_nic_s *self = from_timer(self, t, service_timer); - int ctimer = AQ_CFG_SERVICE_TIMER_INTERVAL; int err = 0; if (aq_utils_obj_test(&self->flags, AQ_NIC_FLAGS_IS_NOT_READY)) @@ -193,12 +203,8 @@ static void aq_nic_service_timer_cb(struct timer_list *t) aq_nic_update_ndev_stats(self); - /* If no link - use faster timer rate to detect link up asap */ - if (!netif_carrier_ok(self->ndev)) - ctimer = max(ctimer / 2, 1); - err_exit: - mod_timer(&self->service_timer, jiffies + ctimer); + mod_timer(&self->service_timer, jiffies + AQ_CFG_SERVICE_TIMER_INTERVAL); } static void aq_nic_polling_timer_cb(struct timer_list *t) @@ -359,13 +365,25 @@ int aq_nic_start(struct aq_nic_s *self) } else { for (i = 0U, aq_vec = self->aq_vec[0]; self->aq_vecs > i; ++i, aq_vec = self->aq_vec[i]) { - err = aq_pci_func_alloc_irq(self, i, - self->ndev->name, aq_vec, + err = aq_pci_func_alloc_irq(self, i, self->ndev->name, + aq_vec_isr, aq_vec, aq_vec_get_affinity_mask(aq_vec)); if (err < 0) goto err_exit; } + if (self->aq_nic_cfg.link_irq_vec) { + int irqvec = pci_irq_vector(self->pdev, + self->aq_nic_cfg.link_irq_vec); + err = request_threaded_irq(irqvec, NULL, + aq_linkstate_threaded_isr, + IRQF_SHARED, + self->ndev->name, self); + if (err < 0) + goto err_exit; + self->msix_entry_mask |= (1 << self->aq_nic_cfg.link_irq_vec); + } + err = self->aq_hw_ops->hw_irq_enable(self->aq_hw, AQ_CFG_IRQ_MASK); if (err < 0) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c index 151efd8f21d8..9cb8dc7656aa 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c @@ -140,26 +140,27 @@ int aq_pci_func_init(struct pci_dev *pdev) } int aq_pci_func_alloc_irq(struct aq_nic_s *self, unsigned int i, - char *name, void *aq_vec, cpumask_t *affinity_mask) + char *name, irq_handler_t irq_handler, + void *irq_arg, cpumask_t *affinity_mask) { struct pci_dev *pdev = self->pdev; int err; if (pdev->msix_enabled || pdev->msi_enabled) - err = request_irq(pci_irq_vector(pdev, i), aq_vec_isr, 0, - name, aq_vec); + err = request_irq(pci_irq_vector(pdev, i), irq_handler, 0, + name, irq_arg); else err = request_irq(pci_irq_vector(pdev, i), aq_vec_isr_legacy, - IRQF_SHARED, name, aq_vec); + IRQF_SHARED, name, irq_arg); if (err >= 0) { self->msix_entry_mask |= (1 << i); - self->aq_vec[i] = aq_vec; - if (pdev->msix_enabled) + if (pdev->msix_enabled && affinity_mask) irq_set_affinity_hint(pci_irq_vector(pdev, i), affinity_mask); } + return err; } @@ -167,16 +168,22 @@ void aq_pci_func_free_irqs(struct aq_nic_s *self) { struct pci_dev *pdev = self->pdev; unsigned int i; + void *irq_data; for (i = 32U; i--;) { if (!((1U << i) & self->msix_entry_mask)) continue; - if (i >= AQ_CFG_VECS_MAX) + if (self->aq_nic_cfg.link_irq_vec && + i == self->aq_nic_cfg.link_irq_vec) + irq_data = self; + else if (i < AQ_CFG_VECS_MAX) + irq_data = self->aq_vec[i]; + else continue; if (pdev->msix_enabled) irq_set_affinity_hint(pci_irq_vector(pdev, i), NULL); - free_irq(pci_irq_vector(pdev, i), self->aq_vec[i]); + free_irq(pci_irq_vector(pdev, i), irq_data); self->msix_entry_mask &= ~(1U << i); } } @@ -269,6 +276,7 @@ static int aq_pci_probe(struct pci_dev *pdev, numvecs = min((u8)AQ_CFG_VECS_DEF, aq_nic_get_cfg(self)->aq_hw_caps->msix_irqs); numvecs = min(numvecs, num_online_cpus()); + numvecs += AQ_HW_SERVICE_IRQS; /*enable interrupts */ #if !AQ_CFG_FORCE_LEGACY_INT err = pci_alloc_irq_vectors(self->pdev, 1, numvecs, diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.h b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.h index 799c5e0d653b..670f9a940d65 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.h +++ b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.h @@ -24,8 +24,8 @@ struct aq_board_revision_s { int aq_pci_func_init(struct pci_dev *pdev); int aq_pci_func_alloc_irq(struct aq_nic_s *self, unsigned int i, - char *name, void *aq_vec, - cpumask_t *affinity_mask); + char *name, irq_handler_t irq_handler, + void *irq_arg, cpumask_t *affinity_mask); void aq_pci_func_free_irqs(struct aq_nic_s *self); unsigned int aq_pci_func_get_irq_type(struct aq_nic_s *self); diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c index 7e95804e2180..d54566bab0e9 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c @@ -443,6 +443,11 @@ static int hw_atl_b0_hw_init(struct aq_hw_s *self, u8 *mac_addr) ((HW_ATL_B0_ERR_INT << 0x18) | (1U << 0x1F)) | ((HW_ATL_B0_ERR_INT << 0x10) | (1U << 0x17)), 0U); + /* Enable link interrupt */ + if (aq_nic_cfg->link_irq_vec) + hw_atl_reg_gen_irq_map_set(self, BIT(7) | + aq_nic_cfg->link_irq_vec, 3U); + hw_atl_b0_hw_offload_set(self, aq_nic_cfg); err_exit: From patchwork Fri Apr 26 09:47:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091448 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="sd8ufgi7"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8PG1sl4z9s3Z for ; Fri, 26 Apr 2019 19:48:02 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726314AbfDZJsB (ORCPT ); Fri, 26 Apr 2019 05:48:01 -0400 Received: from mail-eopbgr720081.outbound.protection.outlook.com ([40.107.72.81]:27024 "EHLO NAM05-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727224AbfDZJr5 (ORCPT ); Fri, 26 Apr 2019 05:47:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7X3XSCDrI2zSgUk8rpc17RZSvhCwcWtzm/HYLoO74JI=; b=sd8ufgi7C9mRcuqt2cAHHWKKyrN/A8q+bl3NGGvGivOcplVXzJUs+hVTp9lrD9A9BhDDHfwVI+zqlIb/m/z8n7GzWdbHwH0BdxHRboHuFnrPEZGcMeyq9IvhmLx/nY7zN1yzcY2LYIzbxvl991u3mC7EeYoLcCoaT6d5GCMnDh0= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:47:55 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:47:55 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh Subject: [PATCH v3 net-next 07/15] net: aquantia: improve ifup link detection Thread-Topic: [PATCH v3 net-next 07/15] net: aquantia: improve ifup link detection Thread-Index: AQHU/BUf1vJnN2UiF0OIxrXjGURXig== Date: Fri, 26 Apr 2019 09:47:55 +0000 Message-ID: <73fda71bbfa7f145a59dc67b8d8e45cc88bb6401.1556270198.git.igor.russkikh@aquantia.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6ce2aff2-4c1a-416d-ba42-08d6ca2c419f x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:475; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(4744005)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: CDl2Plmz074CyRQkXiEEKXA2rj3wt+grKamg8flBieru1VJgj/EikCLEG3ZSSt2VHJPb5s4AV6xCUc9ENOSXMrORcP5F5BgRtqj1oeKqwSuJ3ufWZbBzkxvWxCneAezze6m6tMCNQTAOpD+Y4UBQ9NmsF0DHzVL4s9aREC5T14h6zJ4+Gx8eqqK31N5oRDucQt8QybNF+IUYkp2mt7chBRFc1ZDr0CDD73Ad0Af8VlyQEoy/w4OQCMztW8ZoRdTyC7J1kI9eyTpYc4qHZNatS5mr2crXEvxfqdUpR6Wc/QPed9K0VdipFVGKd47DXafDkhhcMsYYUOQy6p5Yt2647PqE2p/MdQe5iVCnGLa7+rFja+LHblSZ2lF40HAAvxOjaeDWL4nhjpBjxkzfnZxRm9B9cfig3bVXRmfVSaN2eos= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ce2aff2-4c1a-416d-ba42-08d6ca2c419f X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:47:55.0314 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Original code detected link only after 1 sec is passed after up. Here we replace this with direct service callback which updates link status immediately Signed-off-by: Igor Russkikh --- drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c index 0251566b66af..6de0d1c0ed79 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c @@ -355,8 +355,7 @@ int aq_nic_start(struct aq_nic_s *self) if (err) goto err_exit; timer_setup(&self->service_timer, aq_nic_service_timer_cb, 0); - mod_timer(&self->service_timer, jiffies + - AQ_CFG_SERVICE_TIMER_INTERVAL); + aq_nic_service_timer_cb(&self->service_timer); if (self->aq_nic_cfg.is_polling) { timer_setup(&self->polling_timer, aq_nic_polling_timer_cb, 0); From patchwork Fri Apr 26 09:47:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091449 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="bR8L4s6F"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8PK503nz9s3Z for ; Fri, 26 Apr 2019 19:48:05 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727274AbfDZJsE (ORCPT ); Fri, 26 Apr 2019 05:48:04 -0400 Received: from mail-eopbgr790047.outbound.protection.outlook.com ([40.107.79.47]:51872 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726199AbfDZJr7 (ORCPT ); Fri, 26 Apr 2019 05:47:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VTEC+Ekwl2lShbkEmGYv39q8+iIz603+r/P/Ey9DV8E=; b=bR8L4s6FokQt/+FH2HLHoFP4JV61yiwtafQHUK0HdSvWm1fWNQ1kqT55HurDNRx0fDebuc/Zy8M0hLCYUafOj1OWs/5O1UHk7aqtYNZhtHeTrzUXawZF5kItZSihk895JhqtcB0APgUFpIBbvmZwrxsoyCREvrTmGEbPqMhYBck= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:47:57 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:47:57 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v3 net-next 08/15] net: aquantia: use macros for better visibility Thread-Topic: [PATCH v3 net-next 08/15] net: aquantia: use macros for better visibility Thread-Index: AQHU/BUgSbQMosTFUkGRRsZMhm3T0A== Date: Fri, 26 Apr 2019 09:47:57 +0000 Message-ID: <7ebb6bd547e3ea581ad9d0a97ef586d0e02e0253.1556270198.git.igor.russkikh@aquantia.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c868e7eb-b079-4e51-f39b-08d6ca2c4319 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:164; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: PluBfdPtbhUBxkXSZc2XEHThxa3QDUWHVQCciqAchA6iHnPO8R6P4trc/HT+qxdGueUPZw/0VvAZ9T45WGLGwtIoiAjt9n2RVXegIu0lu/RkoRSF/6a6GeujqVeEo8SJ9LJkeasIhzuLK6ibpxpWuc2Zongi4j3NlrvFYct76Uj5B5btpVGkCNLVxddDjvwxwHgL9rlTKsmLJdyqWL5HdjHQM3+1IHv6ojMILZzaqv67m9ivLUsY9sfGNRps4dTq+v6IoN+6n8BZOJ+MUqPSmjGY2P2BLS1zpG3JXHuydfC4xO+LbgjXDj7EnIxVPf+BKNsl+7rr4LLZVLNuen+SxtxOk3d+BKAD3T5BfsMhUPle0l4qgs++446CppOR2FfnEiTRTCft3LYocbtP7HIo8jnbrO9lIw8hpI8lNHWMcXc= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: c868e7eb-b079-4e51-f39b-08d6ca2c4319 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:47:57.5712 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Improve for better readability Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Reviewed-by: Andrew Lunn --- drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c | 8 ++++---- drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c index 65ffaa7ad69e..9fe507fe2d7f 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c @@ -350,10 +350,10 @@ static int hw_atl_a0_hw_mac_addr_set(struct aq_hw_s *self, u8 *mac_addr) static int hw_atl_a0_hw_init(struct aq_hw_s *self, u8 *mac_addr) { static u32 aq_hw_atl_igcr_table_[4][2] = { - { 0x20000000U, 0x20000000U }, /* AQ_IRQ_INVALID */ - { 0x20000080U, 0x20000080U }, /* AQ_IRQ_LEGACY */ - { 0x20000021U, 0x20000025U }, /* AQ_IRQ_MSI */ - { 0x20000022U, 0x20000026U } /* AQ_IRQ_MSIX */ + [AQ_HW_IRQ_INVALID] = { 0x20000000U, 0x20000000U }, + [AQ_HW_IRQ_LEGACY] = { 0x20000080U, 0x20000080U }, + [AQ_HW_IRQ_MSI] = { 0x20000021U, 0x20000025U }, + [AQ_HW_IRQ_MSIX] = { 0x20000022U, 0x20000026U }, }; int err = 0; diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c index d54566bab0e9..bfcda12d73de 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c @@ -388,10 +388,10 @@ static int hw_atl_b0_hw_mac_addr_set(struct aq_hw_s *self, u8 *mac_addr) static int hw_atl_b0_hw_init(struct aq_hw_s *self, u8 *mac_addr) { static u32 aq_hw_atl_igcr_table_[4][2] = { - { 0x20000000U, 0x20000000U }, /* AQ_IRQ_INVALID */ - { 0x20000080U, 0x20000080U }, /* AQ_IRQ_LEGACY */ - { 0x20000021U, 0x20000025U }, /* AQ_IRQ_MSI */ - { 0x20000022U, 0x20000026U } /* AQ_IRQ_MSIX */ + [AQ_HW_IRQ_INVALID] = { 0x20000000U, 0x20000000U }, + [AQ_HW_IRQ_LEGACY] = { 0x20000080U, 0x20000080U }, + [AQ_HW_IRQ_MSI] = { 0x20000021U, 0x20000025U }, + [AQ_HW_IRQ_MSIX] = { 0x20000022U, 0x20000026U }, }; int err = 0; From patchwork Fri Apr 26 09:48:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091456 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="ArfkrwwM"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8Pk1xLkz9s3Z for ; Fri, 26 Apr 2019 19:48:26 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727257AbfDZJsD (ORCPT ); Fri, 26 Apr 2019 05:48:03 -0400 Received: from mail-eopbgr720064.outbound.protection.outlook.com ([40.107.72.64]:44471 "EHLO NAM05-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727224AbfDZJsC (ORCPT ); Fri, 26 Apr 2019 05:48:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Myh45THPxieVDMIB1mSEu1Kr+/3stsuOcBFjrWumQKw=; b=ArfkrwwMEJdzvbAg8R9Eciztt4QZTbvzplYCHvsjCUUeFiNQo3sS/uflscJBTD32kh96Z+Zri/gnhRQrvKQZZBZ7+3CvptP7CSoURRFiYfH8H7duIaaUQLeHQrO4jf85QMODLTbNe1ETcNdbR0SUfqFMAZjtqcfs/yydYBJC4+g= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:48:00 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:48:00 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v3 net-next 09/15] net: aquantia: user correct MSI irq type Thread-Topic: [PATCH v3 net-next 09/15] net: aquantia: user correct MSI irq type Thread-Index: AQHU/BUiPEFKY4xMTkeHySZeimPJfQ== Date: Fri, 26 Apr 2019 09:48:00 +0000 Message-ID: <97d180b322351d68f201af641cab00e8d5cd533a.1556270198.git.igor.russkikh@aquantia.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8fba9c2d-935d-4737-f2af-08d6ca2c449d x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1060; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(14444005)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(4744005)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 7bVpFMb4Ks/6d/dj5r492N3qaLrm14mU2uM+tEhFRg8gFaX+CzfmGE6ObGt0MZwfiV7/o8PueHSHGcmrvDHsUR60tplNia7l3C+1psz1RuusjwmJi6MUqxBKZcf2sEct3zgrYESHYyKHIaolWUPpH/9nFq3sceXWm6VKcAakB4JpKgz0IAMAlOhtpRR9iddSxw97KJl6+uwBIRnkDQucdl/3HdaJ8cNZ4zk9VGymWA37OXgnf3cqHXxKg+Xpmhf3tuGlSmhwxFUCXlJ8Lu462EJQgpWB99OMujybMET1Dp8R3dn12k4d61wlJu2uoaljQ209LG6SiqAAjWknI6wHQKKtbiwtFXG+xzdQm2KmsOIpAK2mEF2sZPJ3LMUpCgzDZAxqKZpLf56n2u4oZNhF69Nnxm/bcOG7UQBSqzMqg7U= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8fba9c2d-935d-4737-f2af-08d6ca2c449d X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:48:00.1670 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Typo in msi code. No much impact though. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Reviewed-by: Andrew Lunn --- drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c index 9cb8dc7656aa..961e9777e66b 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c @@ -193,7 +193,7 @@ unsigned int aq_pci_func_get_irq_type(struct aq_nic_s *self) if (self->pdev->msix_enabled) return AQ_HW_IRQ_MSIX; if (self->pdev->msi_enabled) - return AQ_HW_IRQ_MSIX; + return AQ_HW_IRQ_MSI; return AQ_HW_IRQ_LEGACY; } From patchwork Fri Apr 26 09:48:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091450 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="IiA8nPlF"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8PN1dzqz9s3Z for ; Fri, 26 Apr 2019 19:48:08 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726524AbfDZJsH (ORCPT ); Fri, 26 Apr 2019 05:48:07 -0400 Received: from mail-eopbgr720058.outbound.protection.outlook.com ([40.107.72.58]:23360 "EHLO NAM05-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727224AbfDZJsF (ORCPT ); Fri, 26 Apr 2019 05:48:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rFyXt0JQkZJAwmW5e7g78lSXVQsL7839pI9Gj47BKPY=; b=IiA8nPlFM/ticwX9Gt3K3c1mDqQWhGUt+l6av/KDDL3zNBCsiJc0zbxqCJFeRDfJ8S14JEqxucm2arENEsJBxryGajoQ+0Dq8oWlsEHAQE7nxTk68zOvN9fciiAVPCVB5Lh2YhmdyjplgxvZNSUo1MUQ80b7zrHegIyiIkPX/eM= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:48:02 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:48:02 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v3 net-next 10/15] net: aquantia: introduce fwreq mutex Thread-Topic: [PATCH v3 net-next 10/15] net: aquantia: introduce fwreq mutex Thread-Index: AQHU/BUj1b4BqqlU4EaabWZw9pOJSw== Date: Fri, 26 Apr 2019 09:48:02 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c6a18215-b380-4c51-a5e3-08d6ca2c462a x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:143; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(14444005)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: aH2jsY/KTcL9I3lwAWwCBHI/hTS8BpdtywsNxNQW/B2FcRW1Pm7agUF2V8YxhMWGrZt6gcNpGd1SnaM590XqLZFyLt/ftaOHAvTZYzAYgyQxJO8Y417OPgDlc2gtGlvobBbdv0vK8umOF+EA4dNltHfyU8whz3l+jM3x3OcRXXSJJpH7fy3IHM9lItFts04g+K85jcYml7i+/GD1eJ/ZNkk4Op47+iK5Ee9+EYR4fVWswCIwICG5vNMgXYrblHrw+VLzVjOzv9I1Lkku48zPZsB4hNUAOaS4kzfGx61j6LQYLKn1u369ZzAHx0LB3gV+Xh7yTPd9XF2KTta/+eB85PmoffDwY6sRCwWC91WFlNcYiJMmmgMLfg71P9guPTN4UbX1W1gsJ032HgIr2X2bis4roGyr4HCBoYZXDOPEUtg= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: c6a18215-b380-4c51-a5e3-08d6ca2c462a X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:48:02.7167 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Nikita Danilov Some of FW operations could be invoked simultaneously, from f.e. ethtool context and from service service activity work. Here we introduce a fw mutex to secure and serialize access to FW logic. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Reviewed-by: Andrew Lunn --- .../ethernet/aquantia/atlantic/aq_ethtool.c | 22 +++++++++++++--- .../net/ethernet/aquantia/atlantic/aq_nic.c | 26 ++++++++++++++----- .../net/ethernet/aquantia/atlantic/aq_nic.h | 2 ++ .../ethernet/aquantia/atlantic/aq_pci_func.c | 2 ++ 4 files changed, 42 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c index a718d7a1f76c..79da48094770 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c @@ -405,8 +405,10 @@ static int aq_ethtool_get_eee(struct net_device *ndev, struct ethtool_eee *eee) if (!aq_nic->aq_fw_ops->get_eee_rate) return -EOPNOTSUPP; + mutex_lock(&aq_nic->fwreq_mutex); err = aq_nic->aq_fw_ops->get_eee_rate(aq_nic->aq_hw, &rate, &supported_rates); + mutex_unlock(&aq_nic->fwreq_mutex); if (err < 0) return err; @@ -439,8 +441,10 @@ static int aq_ethtool_set_eee(struct net_device *ndev, struct ethtool_eee *eee) !aq_nic->aq_fw_ops->set_eee_rate)) return -EOPNOTSUPP; + mutex_lock(&aq_nic->fwreq_mutex); err = aq_nic->aq_fw_ops->get_eee_rate(aq_nic->aq_hw, &rate, &supported_rates); + mutex_unlock(&aq_nic->fwreq_mutex); if (err < 0) return err; @@ -452,20 +456,28 @@ static int aq_ethtool_set_eee(struct net_device *ndev, struct ethtool_eee *eee) cfg->eee_speeds = 0; } - return aq_nic->aq_fw_ops->set_eee_rate(aq_nic->aq_hw, rate); + mutex_lock(&aq_nic->fwreq_mutex); + err = aq_nic->aq_fw_ops->set_eee_rate(aq_nic->aq_hw, rate); + mutex_unlock(&aq_nic->fwreq_mutex); + + return err; } static int aq_ethtool_nway_reset(struct net_device *ndev) { struct aq_nic_s *aq_nic = netdev_priv(ndev); + int err = 0; if (unlikely(!aq_nic->aq_fw_ops->renegotiate)) return -EOPNOTSUPP; - if (netif_running(ndev)) - return aq_nic->aq_fw_ops->renegotiate(aq_nic->aq_hw); + if (netif_running(ndev)) { + mutex_lock(&aq_nic->fwreq_mutex); + err = aq_nic->aq_fw_ops->renegotiate(aq_nic->aq_hw); + mutex_unlock(&aq_nic->fwreq_mutex); + } - return 0; + return err; } static void aq_ethtool_get_pauseparam(struct net_device *ndev, @@ -503,7 +515,9 @@ static int aq_ethtool_set_pauseparam(struct net_device *ndev, else aq_nic->aq_hw->aq_nic_cfg->flow_control &= ~AQ_NIC_FC_TX; + mutex_lock(&aq_nic->fwreq_mutex); err = aq_nic->aq_fw_ops->set_flow_control(aq_nic->aq_hw); + mutex_unlock(&aq_nic->fwreq_mutex); return err; } diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c index 6de0d1c0ed79..b038e2e9af3a 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c @@ -234,8 +234,10 @@ int aq_nic_ndev_register(struct aq_nic_s *self) if (err) goto err_exit; + mutex_lock(&self->fwreq_mutex); err = self->aq_fw_ops->get_mac_permanent(self->aq_hw, self->ndev->dev_addr); + mutex_unlock(&self->fwreq_mutex); if (err) goto err_exit; @@ -304,7 +306,9 @@ int aq_nic_init(struct aq_nic_s *self) unsigned int i = 0U; self->power_state = AQ_HW_POWER_STATE_D0; + mutex_lock(&self->fwreq_mutex); err = self->aq_hw_ops->hw_reset(self->aq_hw); + mutex_unlock(&self->fwreq_mutex); if (err < 0) goto err_exit; @@ -871,7 +875,9 @@ int aq_nic_set_link_ksettings(struct aq_nic_s *self, self->aq_nic_cfg.is_autoneg = false; } + mutex_lock(&self->fwreq_mutex); err = self->aq_fw_ops->set_link_speed(self->aq_hw, rate); + mutex_unlock(&self->fwreq_mutex); if (err < 0) goto err_exit; @@ -931,14 +937,22 @@ void aq_nic_deinit(struct aq_nic_s *self) self->aq_vecs > i; ++i, aq_vec = self->aq_vec[i]) aq_vec_deinit(aq_vec); - self->aq_fw_ops->deinit(self->aq_hw); + if (likely(self->aq_fw_ops->deinit)) { + mutex_lock(&self->fwreq_mutex); + self->aq_fw_ops->deinit(self->aq_hw); + mutex_unlock(&self->fwreq_mutex); + } if (self->power_state != AQ_HW_POWER_STATE_D0 || - self->aq_hw->aq_nic_cfg->wol) { - self->aq_fw_ops->set_power(self->aq_hw, - self->power_state, - self->ndev->dev_addr); - } + self->aq_hw->aq_nic_cfg->wol) + if (likely(self->aq_fw_ops->set_power)) { + mutex_lock(&self->fwreq_mutex); + self->aq_fw_ops->set_power(self->aq_hw, + self->power_state, + self->ndev->dev_addr); + mutex_unlock(&self->fwreq_mutex); + } + err_exit:; } diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.h b/drivers/net/ethernet/aquantia/atlantic/aq_nic.h index 0409cf5ca3ab..be56ace6274b 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.h +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.h @@ -105,6 +105,8 @@ struct aq_nic_s { struct pci_dev *pdev; unsigned int msix_entry_mask; u32 irqvecs; + /* mutex to serialize FW interface access operations */ + struct mutex fwreq_mutex; struct aq_hw_rx_fltrs_s aq_hw_rx_fltrs; }; diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c index 961e9777e66b..a607e25dfbff 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c @@ -231,6 +231,8 @@ static int aq_pci_probe(struct pci_dev *pdev, SET_NETDEV_DEV(ndev, &pdev->dev); pci_set_drvdata(pdev, self); + mutex_init(&self->fwreq_mutex); + err = aq_pci_probe_get_hw_by_id(pdev, &self->aq_hw_ops, &aq_nic_get_cfg(self)->aq_hw_caps); if (err) From patchwork Fri Apr 26 09:48:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091455 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="Kqwx5FkW"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8Ph2rdMz9s5c for ; Fri, 26 Apr 2019 19:48:24 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727224AbfDZJsK (ORCPT ); Fri, 26 Apr 2019 05:48:10 -0400 Received: from mail-eopbgr720057.outbound.protection.outlook.com ([40.107.72.57]:9620 "EHLO NAM05-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727275AbfDZJsH (ORCPT ); Fri, 26 Apr 2019 05:48:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fslB5WAPdekkjRMO3Bt4TzfjDhFEhwh45ozH34KVE58=; b=Kqwx5FkWXXIRIfpW8TARNOUN2bjoyI5KPSQCuvmnxNecmx1njSNwFL+NPOsiFl5MaOuspBtUuQ7AoXYRRWUD/Al37eGlZBw+n995sAfrZPPLuAc9DvJOD5aeC0o5cxs3oeK4hws0QRedX67523uhtQSQ2cjWVsglXmoFVN3Ksbo= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:48:05 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:48:05 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v3 net-next 11/15] net: aquantia: extract timer cb into work job Thread-Topic: [PATCH v3 net-next 11/15] net: aquantia: extract timer cb into work job Thread-Index: AQHU/BUlTSigGVHVykKr8qiaF1oAGA== Date: Fri, 26 Apr 2019 09:48:05 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9eacf5c7-7cac-47c7-fd1e-08d6ca2c47b3 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:398; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(14444005)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 2IvSLxC/hsdkuCeZLcpg23T1qwsoUkRzK16HIPswW18U8n9RBV6FPY/GOLCclMigo1vdPffFYoqfOQ6FsnAOkWqvU5IAvsGIyY4xDwMboNGNvMfwIhgwC9MDgDFH8IhrbGFWw6AzRgSjTNE82JG26G/vVxRzwn4W766ypC/ihpeXlNk3r5ehNCy5otzV1EabuA7rAjpehMXG9dpIRvv8p5St758x5fpQKPMivlxUSOlMR4oqZ2LcxThV9Hw2imFmCfrSAq6bAO3NRekGhsqIN9QBVNHeYVgTEQfVYF3CeeaWcAqOsytt/R4mQO0x4pwRoj482pzaXu3AdOZ5EWcCm+kyRl8iIQHNY0bvnd1HdPx3OzA9jz4dSf1wEAUX8xxOsQgU66LOoZJC+PrEEGmKG63BlyJBRrlnpohz3aVg2Oo= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9eacf5c7-7cac-47c7-fd1e-08d6ca2c47b3 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:48:05.2505 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Service timer callback fetches statistics from FW and that may cause a long delay in error cases. We also now need to use fw mutex to prevent concurrent access to FW, thus - extract that logic from timer callback into the job in the separate work queue. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh --- .../net/ethernet/aquantia/atlantic/aq_nic.c | 25 ++++++++++++++----- .../net/ethernet/aquantia/atlantic/aq_nic.h | 1 + 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c index b038e2e9af3a..454a44bb148e 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c @@ -186,25 +186,34 @@ static irqreturn_t aq_linkstate_threaded_isr(int irq, void *private) return IRQ_HANDLED; } -static void aq_nic_service_timer_cb(struct timer_list *t) +static void aq_nic_service_task(struct work_struct *work) { - struct aq_nic_s *self = from_timer(self, t, service_timer); - int err = 0; + struct aq_nic_s *self = container_of(work, struct aq_nic_s, + service_task); + int err; if (aq_utils_obj_test(&self->flags, AQ_NIC_FLAGS_IS_NOT_READY)) - goto err_exit; + return; err = aq_nic_update_link_status(self); if (err) - goto err_exit; + return; + mutex_lock(&self->fwreq_mutex); if (self->aq_fw_ops->update_stats) self->aq_fw_ops->update_stats(self->aq_hw); + mutex_unlock(&self->fwreq_mutex); aq_nic_update_ndev_stats(self); +} + +static void aq_nic_service_timer_cb(struct timer_list *t) +{ + struct aq_nic_s *self = from_timer(self, t, service_timer); -err_exit: mod_timer(&self->service_timer, jiffies + AQ_CFG_SERVICE_TIMER_INTERVAL); + + aq_ndev_schedule_work(&self->service_task); } static void aq_nic_polling_timer_cb(struct timer_list *t) @@ -358,6 +367,9 @@ int aq_nic_start(struct aq_nic_s *self) err = aq_nic_update_interrupt_moderation_settings(self); if (err) goto err_exit; + + INIT_WORK(&self->service_task, aq_nic_service_task); + timer_setup(&self->service_timer, aq_nic_service_timer_cb, 0); aq_nic_service_timer_cb(&self->service_timer); @@ -910,6 +922,7 @@ int aq_nic_stop(struct aq_nic_s *self) netif_carrier_off(self->ndev); del_timer_sync(&self->service_timer); + cancel_work_sync(&self->service_task); self->aq_hw_ops->hw_irq_disable(self->aq_hw, AQ_CFG_IRQ_MASK); diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.h b/drivers/net/ethernet/aquantia/atlantic/aq_nic.h index be56ace6274b..c03d38ed105d 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.h +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.h @@ -93,6 +93,7 @@ struct aq_nic_s { const struct aq_fw_ops *aq_fw_ops; struct aq_nic_cfg_s aq_nic_cfg; struct timer_list service_timer; + struct work_struct service_task; struct timer_list polling_timer; struct aq_hw_link_status_s link_status; struct { From patchwork Fri Apr 26 09:48:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091451 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="Ju5TLcbi"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8PS3SRXz9s3Z for ; Fri, 26 Apr 2019 19:48:12 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727315AbfDZJsL (ORCPT ); Fri, 26 Apr 2019 05:48:11 -0400 Received: from mail-eopbgr720050.outbound.protection.outlook.com ([40.107.72.50]:62816 "EHLO NAM05-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726683AbfDZJsJ (ORCPT ); Fri, 26 Apr 2019 05:48:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kTT3owiX1IZ2So/8pigCetjG2t8mCBpGkSRY3SFWN+o=; b=Ju5TLcbiW2jR7LXo855Z+IK8bpp12h8S4X/Ve2ctZHYoblMp+F0e1LJRIDVn074dnSZqNNKHLoh3bothpApwKG3icZsc1mQT5MqXeh89bvQAC7zau50VO3gzz5M5nd69NNUEHmsucd1cFEjun0FDBdEKbMqeY4STKT9E71gtN68= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:48:07 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:48:07 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh Subject: [PATCH v3 net-next 12/15] net: aquantia: fetch up to date statistics on ethtool request Thread-Topic: [PATCH v3 net-next 12/15] net: aquantia: fetch up to date statistics on ethtool request Thread-Index: AQHU/BUm5WJNzQfv5EmzDxhVLkJbaA== Date: Fri, 26 Apr 2019 09:48:07 +0000 Message-ID: <2a9e963b32b491901a8c2261ff4e707a92fd8381.1556270198.git.igor.russkikh@aquantia.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 73fcc99e-2297-4e45-be22-08d6ca2c4910 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:71; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(14444005)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: iiCFvr1aw1aU7QHk6/MegTQJxWKh6YTnZkNd7TfnttOxH0KsmjN/kkxiX/LYAHQL9boPqfKobwq9U/MXczuAYiM1rmoBu/CZp0BM4GtX5c9EnCSzLOjeNd6FURuACFqBSUwc0dL8q84juzmHE9pUCuWNJjondgKg4idC5hMbLponZ2xZec3aYInDow9ZK2u5OJDyK5TXqLIu498O6iiR5ktNX28W8DbQ2viApKdRTi5vpBBoyq992JOLMGsZh3He0T8t2pnoBdM5fpcrRvpfhtwH0XzUCyOARAi7f3ygqh6cpNIe66vMw2AzwFgKD2ghjyh4FPp1MuZFuKHFRAxjMp4qmCE517kLL+LlzAZKNpQa32luppUhoavGqSGgQpEX6biFK0L0YR76KE48/UDDM4vvXvMDdZ2glQWJLm0C5xM= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 73fcc99e-2297-4e45-be22-08d6ca2c4910 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:48:07.5331 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Dmitry Bogdanov This improves ethtool -S usage, where stats are now actual on each request. Before that stats only were updated at service timer period. Tested-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: Dmitry Bogdanov --- drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c index 454a44bb148e..1893ba7fcd2b 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c @@ -700,7 +700,15 @@ void aq_nic_get_stats(struct aq_nic_s *self, u64 *data) unsigned int i = 0U; unsigned int count = 0U; struct aq_vec_s *aq_vec = NULL; - struct aq_stats_s *stats = self->aq_hw_ops->hw_get_hw_stats(self->aq_hw); + struct aq_stats_s *stats; + + if (self->aq_fw_ops->update_stats) { + mutex_lock(&self->fwreq_mutex); + self->aq_fw_ops->update_stats(self->aq_hw); + mutex_unlock(&self->fwreq_mutex); + } + stats = self->aq_hw_ops->hw_get_hw_stats(self->aq_hw); + if (!stats) goto err_exit; From patchwork Fri Apr 26 09:48:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091452 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="aM9qA/om"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8PX19Sqz9s3Z for ; Fri, 26 Apr 2019 19:48:16 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727334AbfDZJsO (ORCPT ); Fri, 26 Apr 2019 05:48:14 -0400 Received: from mail-eopbgr720055.outbound.protection.outlook.com ([40.107.72.55]:45888 "EHLO NAM05-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727032AbfDZJsM (ORCPT ); Fri, 26 Apr 2019 05:48:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gNEJkRadedwTlRFmpQYmkhJzyFPO44i9V55/gbUumnI=; b=aM9qA/ompDMklQLfugIz73mJJcM4pof1/uC7zhZadjCUL0ZWoCY0W5Sv11Wv3BAvRvaDZWCdsW/u5IcpSx6ACZze0qwutFlPA/7ENUuRwWSCUJM7GZ3jC6rNJEppVuX0hl/LJei9KhRPNdQniLFdnsvmYlPiAtNKknCoxfj4A9M= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:48:10 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:48:10 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v3 net-next 13/15] net: aquantia: get total counters from DMA block Thread-Topic: [PATCH v3 net-next 13/15] net: aquantia: get total counters from DMA block Thread-Index: AQHU/BUorFBqyYdtXUOzsEzBQ3Wqew== Date: Fri, 26 Apr 2019 09:48:10 +0000 Message-ID: <1bff161b3cb3659f3f99a769648c2b3939f6739c.1556270198.git.igor.russkikh@aquantia.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1d848b4d-4acf-4e0e-1ac7-08d6ca2c4a8d x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:233; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(14444005)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: lGMcFSFtKjnKIrtwseBDAdVmSr90QJcfLUfA3QqJwVc0bIFJEqoSm+Hkw6L3JIluFTzeSm3ua5zwDHKTtZBYQMmfhDlslFz8ssWQvNu/iJo+LfAVlRUpja8XqLOGkBwZjuX0mdVrAbCkeFvCdwP00gh6GZPT/cHJ/vLuqC485PQ7TdzSvKePoNMwJDv/+lPpmBVqOJ+Ym+ExG89CfV60G4GbclaH/qi9KnWGIVRdsVjHIzRAwHIwDIvY7qmQeDN6aG14+m57U087GfIciQJ7LAnBskdblqZLUu1CdWi254URtlys7u6gopBx3mVwEBviJw+wj0JwPMJtq8WX33zbexNWrSVjK3wtMKTFYpHKVCv2eTAwQ3EiCTLUQ3b68EGJ3vbdh7UBmAZ7HLfwtuu1bZqKvgvaiJJv5pKYEAty3Do= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d848b4d-4acf-4e0e-1ac7-08d6ca2c4a8d X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:48:10.0689 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Dmitry Bogdanov aq_nic_update_ndev_stats pushes statistics to ndev->stats from system interface. This is not always good because it counts packets/bytes before any of rx filters (including mac filter). Its better to report the packet/bytes statistics from DMA counters which gives actual values of data transferred over pci. System level stats is still available via ethtool. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: Dmitry Bogdanov --- drivers/net/ethernet/aquantia/atlantic/aq_nic.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c index 1893ba7fcd2b..b94c58bf1d2f 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c @@ -754,11 +754,12 @@ static void aq_nic_update_ndev_stats(struct aq_nic_s *self) struct net_device *ndev = self->ndev; struct aq_stats_s *stats = self->aq_hw_ops->hw_get_hw_stats(self->aq_hw); - ndev->stats.rx_packets = stats->uprc + stats->mprc + stats->bprc; - ndev->stats.rx_bytes = stats->ubrc + stats->mbrc + stats->bbrc; + ndev->stats.rx_packets = stats->dma_pkt_rc; + ndev->stats.rx_bytes = stats->dma_oct_rc; ndev->stats.rx_errors = stats->erpr; - ndev->stats.tx_packets = stats->uptc + stats->mptc + stats->bptc; - ndev->stats.tx_bytes = stats->ubtc + stats->mbtc + stats->bbtc; + ndev->stats.rx_dropped = stats->dpc; + ndev->stats.tx_packets = stats->dma_pkt_tc; + ndev->stats.tx_bytes = stats->dma_oct_tc; ndev->stats.tx_errors = stats->erpt; ndev->stats.multicast = stats->mprc; } From patchwork Fri Apr 26 09:48:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091453 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="lTJesvDP"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8PY3qL0z9s3Z for ; Fri, 26 Apr 2019 19:48:17 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727340AbfDZJsQ (ORCPT ); Fri, 26 Apr 2019 05:48:16 -0400 Received: from mail-eopbgr720063.outbound.protection.outlook.com ([40.107.72.63]:6143 "EHLO NAM05-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727325AbfDZJsO (ORCPT ); Fri, 26 Apr 2019 05:48:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tYkqa1P7damHrFS51sGHFA3c0weiOYe+e/cec29Xtwo=; b=lTJesvDPhNzp5sijExvv424zWtOlRX8xZE4ThsQxByQXMrtNxa2DL1uo+fO1DExPfVainBZNFtSBtboLOfJOf5skQ383NC0l9FTkycW3b0a/7qQB8y6Dge2b2V737aWXO3xbWcNGyWhKsfvA0vWohRtpnpE1DXnUlf/jirnI0gc= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:48:12 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:48:12 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh Subject: [PATCH v3 net-next 14/15] net: aquantia: fixups on 64bit dma counters Thread-Topic: [PATCH v3 net-next 14/15] net: aquantia: fixups on 64bit dma counters Thread-Index: AQHU/BUpjtEB6uPvhUu89YXh6sxDPw== Date: Fri, 26 Apr 2019 09:48:12 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d9767fde-ae5b-4f0c-68c9-08d6ca2c4bf2 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:229; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(14444005)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: v1sb6HrQLUyRim+wfSm0Ibm2l24JGwP2ugGVijgZHfTsQ1qw24kI6V96LH9prFQXkTB88Mt9nAZ0uU9J/qNEUd3EGYCHeSXJYsEIXoD/IVDl/29fJbCaFoEFbV/8KV0fVYGZDnmi3EgKcvxmjA7Cr2RLUtgeMl3DVE/OgMinj5rEGLo+fLwDifC6F586t/sI8A3E/qWPE/gFW64gIa8pbk0Ly6u1ySq527KicAjV/nAajSARBNYPxfAdSkZwYzpKPBrWFzMQZ28zP9aoQtSmsiwgWfmT6pidp2Al8fhDN2mmCzrtwLpHcrV+D1x8vbZu64InQm2+PuvvAS8Wp+jg/Z0SViIIeVJvFFoK7ep26u5gnay0bdSBJG6gdqFt8zv5iPKrRpKZ92h/um7bZJVVFp6A8vmm3PaqJFQnmIXDIKA= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: d9767fde-ae5b-4f0c-68c9-08d6ca2c4bf2 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:48:12.4035 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Dmitry Bogdanov DMA counters are 64 bit and we can fetch that to reduce counter overflow, espesially on byte counters. Tested-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: Dmitry Bogdanov --- .../ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c | 5 ----- .../ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h | 3 --- .../aquantia/atlantic/hw_atl/hw_atl_llh_internal.h | 3 --- .../aquantia/atlantic/hw_atl/hw_atl_utils.c | 14 +++++++++----- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c index 9442deff98a8..9876122991a7 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.c @@ -49,11 +49,6 @@ u32 hw_atl_glb_soft_res_get(struct aq_hw_s *aq_hw) HW_ATL_GLB_SOFT_RES_SHIFT); } -u32 hw_atl_reg_rx_dma_stat_counter7get(struct aq_hw_s *aq_hw) -{ - return aq_hw_read_reg(aq_hw, HW_ATL_RX_DMA_STAT_COUNTER7_ADR); -} - u32 hw_atl_reg_glb_mif_id_get(struct aq_hw_s *aq_hw) { return aq_hw_read_reg(aq_hw, HW_ATL_GLB_MIF_ID_ADR); diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h index 4cfa4bd80ad3..3cef151633d4 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh.h @@ -82,9 +82,6 @@ u32 hw_atl_reg_mac_msm_rx_bcst_octets_counter1get(struct aq_hw_s *aq_hw); /* get msm rx unicast octets counter register 0 */ u32 hw_atl_reg_mac_msm_rx_ucst_octets_counter0get(struct aq_hw_s *aq_hw); -/* get rx dma statistics counter 7 */ -u32 hw_atl_reg_rx_dma_stat_counter7get(struct aq_hw_s *aq_hw); - /* get msm tx errors counter register */ u32 hw_atl_reg_mac_msm_tx_errs_cnt_get(struct aq_hw_s *aq_hw); diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h index 430bbd45b2f0..b64140924a02 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_llh_internal.h @@ -58,9 +58,6 @@ /* preprocessor definitions for msm rx unicast octets counter register 0 */ #define HW_ATL_MAC_MSM_RX_UCST_OCTETS_COUNTER0_ADR 0x000001b8u -/* preprocessor definitions for rx dma statistics counter 7 */ -#define HW_ATL_RX_DMA_STAT_COUNTER7_ADR 0x00006818u - /* preprocessor definitions for msm tx unicast frames counter register */ #define HW_ATL_MAC_MSM_TX_UCST_FRM_CNT_ADR 0x00000108u diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c index b521457434fc..55d37b644a1b 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c @@ -545,7 +545,7 @@ void hw_atl_utils_mpi_read_stats(struct aq_hw_s *self, pmbox->stats.ubtc = pmbox->stats.uptc * mtu; pmbox->stats.dpc = atomic_read(&self->dpc); } else { - pmbox->stats.dpc = hw_atl_reg_rx_dma_stat_counter7get(self); + pmbox->stats.dpc = hw_atl_rpb_rx_dma_drop_pkt_cnt_get(self); } err_exit:; @@ -789,10 +789,14 @@ int hw_atl_utils_update_stats(struct aq_hw_s *self) AQ_SDELTA(dpc); } #undef AQ_SDELTA - self->curr_stats.dma_pkt_rc = hw_atl_stats_rx_dma_good_pkt_counterlsw_get(self); - self->curr_stats.dma_pkt_tc = hw_atl_stats_tx_dma_good_pkt_counterlsw_get(self); - self->curr_stats.dma_oct_rc = hw_atl_stats_rx_dma_good_octet_counterlsw_get(self); - self->curr_stats.dma_oct_tc = hw_atl_stats_tx_dma_good_octet_counterlsw_get(self); + self->curr_stats.dma_pkt_rc = hw_atl_stats_rx_dma_good_pkt_counterlsw_get(self) + + ((u64)hw_atl_stats_rx_dma_good_pkt_countermsw_get(self) << 32); + self->curr_stats.dma_pkt_tc = hw_atl_stats_tx_dma_good_pkt_counterlsw_get(self) + + ((u64)hw_atl_stats_tx_dma_good_pkt_countermsw_get(self) << 32); + self->curr_stats.dma_oct_rc = hw_atl_stats_rx_dma_good_octet_counterlsw_get(self) + + ((u64)hw_atl_stats_rx_dma_good_octet_countermsw_get(self) << 32); + self->curr_stats.dma_oct_tc = hw_atl_stats_tx_dma_good_octet_counterlsw_get(self) + + ((u64)hw_atl_stats_tx_dma_good_octet_countermsw_get(self) << 32); memcpy(&self->last_stats, &mbox.stats, sizeof(mbox.stats)); From patchwork Fri Apr 26 09:48:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1091454 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=aquantia.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=AQUANTIA1COM.onmicrosoft.com header.i=@AQUANTIA1COM.onmicrosoft.com header.b="ovuaoa9w"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44r8Pg4DJxz9s3Z for ; Fri, 26 Apr 2019 19:48:23 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727356AbfDZJsU (ORCPT ); Fri, 26 Apr 2019 05:48:20 -0400 Received: from mail-eopbgr720062.outbound.protection.outlook.com ([40.107.72.62]:56320 "EHLO NAM05-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727341AbfDZJsR (ORCPT ); Fri, 26 Apr 2019 05:48:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dKfi/KwDH2U+2gH/+SGmQhe8wLDSOomtNrhSzBoj3RU=; b=ovuaoa9wqh+QojT9AscQXys+vbgzvvQIXzU9sTdtxsMjtxytUjVh6qQ1tVeZkr2GkRw1S/IrC4bpZRLRv1r26CqOaFuUs1y8XKJupcRFc7E7lj7lo2C+PfSkC1jSJ8RrVNrysq7soU0yqh7VSfJxMp1W7e75QcQFOZF9FXl3xEY= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB4154.namprd11.prod.outlook.com (20.176.126.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Fri, 26 Apr 2019 09:48:15 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Fri, 26 Apr 2019 09:48:15 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v3 net-next 15/15] net: aquantia: remove outdated device ids Thread-Topic: [PATCH v3 net-next 15/15] net: aquantia: remove outdated device ids Thread-Index: AQHU/BUraFmXNgH3V0ilG5PETVAAGw== Date: Fri, 26 Apr 2019 09:48:15 +0000 Message-ID: <25f75edaa522e0e4bf0864b8fa171bf82c9da6b9.1556270198.git.igor.russkikh@aquantia.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR08CA0030.namprd08.prod.outlook.com (2603:10b6:a03:100::43) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 099d95b8-e85b-4eee-3919-08d6ca2c4d7a x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB4154; x-ms-traffictypediagnostic: DM6PR11MB4154: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:110; x-forefront-prvs: 001968DD50 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(396003)(39850400004)(366004)(136003)(346002)(199004)(189003)(73956011)(54906003)(478600001)(6486002)(316002)(97736004)(64756008)(256004)(66446008)(107886003)(66556008)(36756003)(118296001)(66946007)(76176011)(6436002)(446003)(26005)(305945005)(66476007)(486006)(2906002)(186003)(386003)(6506007)(2616005)(11346002)(476003)(4326008)(53936002)(102836004)(14454004)(81156014)(81166006)(66066001)(8676002)(86362001)(8936002)(25786009)(99286004)(44832011)(71200400001)(71190400001)(6916009)(5660300002)(52116002)(6512007)(72206003)(7736002)(3846002)(6116002)(68736007)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB4154; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: jMRf4B5DrivADcDaYCyJq8D8DbnjxnjCXox0VvjRvr5E78QVbU7TKreOyEH4oBNWTnarbRJwx23HOOATfUWt5wBsNbOFz8sobAHYfnWMNfvX6r3N38ijVDZ5XBv4hltm8QyyJNgEnUuwhu2hJfQhoJ5v0iqH5/zrTMoTO9m4aHDwutk8DY3OGckwDwgrbEmI3toM2SrSVFGOEiwv1p2fjP0+7ggAHKQOv/n2T46eDWstE5ZHutlW/gz3o6qO5IFLuYgkPtAT5//W0aTC+VBZaP8nRws+JYh4QzCpk79CshgZEgTrq8gfMqzWpNc4MFRdiGXRm11QcCzetYe55BupWKUB2FJTPpDYcQx/Lc+++c/P/VpHhJ1SJtDCY7c3XD+eK/U3HjXTGOTZUdYujjiNa5P77/y3uouk1zW9fLFyrf0= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 099d95b8-e85b-4eee-3919-08d6ca2c4d7a X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 09:48:15.0073 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4154 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Nikita Danilov Some device ids were never released and does not exist. Cleanup these. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Reviewed-by: Andrew Lunn --- drivers/net/ethernet/aquantia/atlantic/aq_common.h | 3 --- drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c | 6 ------ drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.h | 3 --- 3 files changed, 12 deletions(-) diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_common.h b/drivers/net/ethernet/aquantia/atlantic/aq_common.h index 6b6d1724676e..235bb3a72d66 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_common.h +++ b/drivers/net/ethernet/aquantia/atlantic/aq_common.h @@ -41,9 +41,6 @@ #define AQ_DEVICE_ID_AQC111S 0x91B1 #define AQ_DEVICE_ID_AQC112S 0x92B1 -#define AQ_DEVICE_ID_AQC111E 0x51B1 -#define AQ_DEVICE_ID_AQC112E 0x52B1 - #define HW_ATL_NIC_NAME "aQuantia AQtion 10Gbit Network Adapter" #define AQ_HWREV_ANY 0 diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c index a607e25dfbff..efd90ea575f1 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c @@ -43,9 +43,6 @@ static const struct pci_device_id aq_pci_tbl[] = { { PCI_VDEVICE(AQUANTIA, AQ_DEVICE_ID_AQC111S), }, { PCI_VDEVICE(AQUANTIA, AQ_DEVICE_ID_AQC112S), }, - { PCI_VDEVICE(AQUANTIA, AQ_DEVICE_ID_AQC111E), }, - { PCI_VDEVICE(AQUANTIA, AQ_DEVICE_ID_AQC112E), }, - {} }; @@ -75,9 +72,6 @@ static const struct aq_board_revision_s hw_atl_boards[] = { { AQ_DEVICE_ID_AQC109S, AQ_HWREV_ANY, &hw_atl_ops_b1, &hw_atl_b0_caps_aqc109s, }, { AQ_DEVICE_ID_AQC111S, AQ_HWREV_ANY, &hw_atl_ops_b1, &hw_atl_b0_caps_aqc111s, }, { AQ_DEVICE_ID_AQC112S, AQ_HWREV_ANY, &hw_atl_ops_b1, &hw_atl_b0_caps_aqc112s, }, - - { AQ_DEVICE_ID_AQC111E, AQ_HWREV_ANY, &hw_atl_ops_b1, &hw_atl_b0_caps_aqc111e, }, - { AQ_DEVICE_ID_AQC112E, AQ_HWREV_ANY, &hw_atl_ops_b1, &hw_atl_b0_caps_aqc112e, }, }; MODULE_DEVICE_TABLE(pci, aq_pci_tbl); diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.h b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.h index 2cc8dacfdc27..b1c0b6850e60 100644 --- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.h +++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.h @@ -32,9 +32,6 @@ extern const struct aq_hw_caps_s hw_atl_b0_caps_aqc109; #define hw_atl_b0_caps_aqc111s hw_atl_b0_caps_aqc108 #define hw_atl_b0_caps_aqc112s hw_atl_b0_caps_aqc109 -#define hw_atl_b0_caps_aqc111e hw_atl_b0_caps_aqc108 -#define hw_atl_b0_caps_aqc112e hw_atl_b0_caps_aqc109 - extern const struct aq_hw_ops hw_atl_ops_b0; #define hw_atl_ops_b1 hw_atl_ops_b0