From patchwork Tue Apr 23 13:17:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1089372 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="K0qQewAB"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPBP5XFcz9sNr for ; Tue, 23 Apr 2019 23:17:33 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727799AbfDWNRb (ORCPT ); Tue, 23 Apr 2019 09:17:31 -0400 Received: from mail-eopbgr770071.outbound.protection.outlook.com ([40.107.77.71]:52262 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727228AbfDWNRb (ORCPT ); Tue, 23 Apr 2019 09:17:31 -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=YQLkza2SLxu1OklV1Wi9sd8Wd1biFjKlNL4B2zNkNGM=; b=K0qQewAByKHIF9tR6AZwHJXvLumXk9qTpIkjRuaGeLpx55rtqYuIgoCpJ+s2zL9Yl3oGdQUDdxZPLlEX9gWHNJ7yhaPZFXbui+Aqu55j9dZCBe6t+SpExD9/momkjNCuNqaKz7N8uqx+N4tqFsdJgNesC++YdtAXD7+3WyvLfms= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB2905.namprd11.prod.outlook.com (20.177.216.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Tue, 23 Apr 2019 13:17:29 +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; Tue, 23 Apr 2019 13:17:29 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Yana Esina Subject: [PATCH v2 net-next 01/16] net: aquantia: add infrastructure to readout chip temperature Thread-Topic: [PATCH v2 net-next 01/16] net: aquantia: add infrastructure to readout chip temperature Thread-Index: AQHU+dbn+qQNTXaQ90KB3l1Hf9YKmw== Date: Tue, 23 Apr 2019 13:17:29 +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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: 3f56befa-1721-4eb0-c6cf-08d6c7ee08ff x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB2905; x-ms-traffictypediagnostic: DM6PR11MB2905: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(376002)(136003)(39850400004)(346002)(366004)(199004)(189003)(186003)(26005)(8936002)(99286004)(8676002)(97736004)(81166006)(76176011)(81156014)(52116002)(386003)(50226002)(102836004)(6506007)(6916009)(3846002)(6116002)(4326008)(118296001)(2906002)(54906003)(25786009)(36756003)(316002)(6512007)(11346002)(53936002)(107886003)(486006)(478600001)(2616005)(446003)(476003)(7736002)(6436002)(86362001)(14444005)(6486002)(14454004)(66066001)(68736007)(71190400001)(71200400001)(5660300002)(305945005)(256004)(44832011)(66446008)(66556008)(64756008)(66946007)(66476007)(72206003)(73956011); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB2905; 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: hKjConeelvgGQP7k6+ppi1r3EtXx1NQzFHlNXAK5ViZ6tvssNjlf1AP+VzdoiYB8ZcLCE1Pxqimc7Vslv3bAPFArozq/Ackw3Oc8hUbcWOtlLsMpbpzXOj58kY1g5uD2Y4YQY3TSr+bijgh6cJRgdNvCcNut6OSKPl3vRfCCcHHOAaQWHEse2HhFyA67W6PDtgL77fZuYQmcQq6KJSowfreSA4mePPyV4n5Awc6HvlOxQQ+fCEJRX9gtRp4oPac3hXZfX3MPJJTXw2sgOSVrrJfSkzaTf0shxzBxtu59H47A1fB4fl7pefl2l+K/ivh0qQGZs4KF4Ss1taC4y0PS/SBg2naL29RKEEZVlWTa1UjpUuH1HIw5mTnCXDNIbE8zPg/RsVhXFBtu004A6ajbKNiMnYBYSEvU7zVECPbDuoQ= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3f56befa-1721-4eb0-c6cf-08d6c7ee08ff X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:17:29.4623 (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: DM6PR11MB2905 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 --- .../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..538593261ae3 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_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..35df424e3af3 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_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..a0515067d912 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_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_temp = aq_fw2x_get_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 Tue Apr 23 13:17:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1089375 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="Pt1XW2hi"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPBp1fMLz9s3q for ; Tue, 23 Apr 2019 23:17:54 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727834AbfDWNRx (ORCPT ); Tue, 23 Apr 2019 09:17:53 -0400 Received: from mail-eopbgr780082.outbound.protection.outlook.com ([40.107.78.82]:5312 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727228AbfDWNRs (ORCPT ); Tue, 23 Apr 2019 09:17: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=QdvQtPEoeyPnCu2pHsVfo9MTB4V0mDaXMh+8N7hC1Og=; b=Pt1XW2hiYPCRJjfdV9wtscrPkEv/YtBDbWHr4/IBtoABmJEFIrq9YY3ydegY1u/1MYGO7WIBTaAtWyjoZrPNyXeZbZfsPNuDrJQTXr38Ks2+6ELX+VGXn4xspNagPECdGDC6jwZ/XgfUlZKUJBrcsWGxouKBtIOkIPzG6hjzhNk= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3100.namprd11.prod.outlook.com (20.177.219.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.18; Tue, 23 Apr 2019 13:17:32 +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; Tue, 23 Apr 2019 13:17:32 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Yana Esina Subject: [PATCH v2 net-next 02/16] net: aquantia: implement hwmon api for chip temperature Thread-Topic: [PATCH v2 net-next 02/16] net: aquantia: implement hwmon api for chip temperature Thread-Index: AQHU+dbopBEATvha7USDYsUiZvJIgw== Date: Tue, 23 Apr 2019 13:17:32 +0000 Message-ID: <869d56f1adaa7c16f067bfe4b2e8cd780a29beaf.1556024424.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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: f6d66662-4a5a-4963-dca2-08d6c7ee0ac9 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3100; x-ms-traffictypediagnostic: DM6PR11MB3100: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(396003)(39850400004)(346002)(366004)(189003)(199004)(52116002)(99286004)(8676002)(7736002)(6116002)(478600001)(76176011)(305945005)(3846002)(4326008)(97736004)(25786009)(316002)(118296001)(72206003)(53936002)(50226002)(107886003)(81166006)(81156014)(66066001)(14454004)(6512007)(54906003)(8936002)(5660300002)(446003)(68736007)(386003)(186003)(6486002)(486006)(11346002)(476003)(2616005)(44832011)(26005)(36756003)(6506007)(2906002)(6436002)(102836004)(256004)(64756008)(66446008)(66556008)(66476007)(73956011)(66946007)(6916009)(71200400001)(86362001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3100; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: TmiP8sn8db2VE4Qdcu/EsmtkROkrrkBIBrvtplw8H1ap9Jjz/AlInIXV6qfJ35hHKBHdyYhxssMSfu3yx7/SDC2Y5ozWbcXjRcm6FM5UtooggMbCK2gQkToEgiIJQA/riMscEMSBhvm8uz5yEyyQNS1CnWWmMN/thSOvGhxf+lYJwTfnoXNYiSj+GnG7DTmA82qchJBDF/FN3AuZlF5ylIv603OzruKHcXJMImPro13wV8f2ufOp8FCzPj20689neszLHNyON9x9DsVliZgjlK52WkKX7vaWtPEVftv/h1W0GloSoPfwTVpey82nKliIoEtZerTKC0a9OSThoMliHeEMxfI0Se1kSx1tv+2WT4hxWnTzJ0h3NYhQiBOZh1wZd3R7y/Cav37NwJTJJeJ5ejhZZ1JrQigpMSQn5ncw7Lk= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f6d66662-4a5a-4963-dca2-08d6c7ee0ac9 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:17:32.4364 (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: DM6PR11MB3100 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 --- .../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..ca2ffd6432e8 --- /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_temp) + return -EOPNOTSUPP; + + switch (attr) { + case hwmon_temp_input: + err = aq_nic->aq_fw_ops->get_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_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 Tue Apr 23 13:17:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1089373 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="LQPm5A5p"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPBh62L9z9sNN for ; Tue, 23 Apr 2019 23:17:48 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727813AbfDWNRr (ORCPT ); Tue, 23 Apr 2019 09:17:47 -0400 Received: from mail-eopbgr780083.outbound.protection.outlook.com ([40.107.78.83]:25568 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727777AbfDWNRr (ORCPT ); Tue, 23 Apr 2019 09:17: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=OFUSYaZJvnEwy0JFDJd6zujO8mZoSTppGmXkXVMf2NU=; b=LQPm5A5pX3tBhRfmd4dRMkT6NJDE80UyhSWfpciOtxJnJloR3WA1NYnEZ2+Wl5WpbRP4UkPVDMMU5kqWPgoqku9WX1nkFodctTqaApql3AhzBkNe+mVGCmky9SGnDePAiUqiSd0m3oZz05yai5hgkUgJcMVRhAeQtn7FlLpw/3g= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3100.namprd11.prod.outlook.com (20.177.219.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.18; Tue, 23 Apr 2019 13:17:35 +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; Tue, 23 Apr 2019 13:17:35 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v2 net-next 03/16] net: aquantia: add link interrupt fields Thread-Topic: [PATCH v2 net-next 03/16] net: aquantia: add link interrupt fields Thread-Index: AQHU+dbqwu91D3H3LEu7zgEGhzbGoQ== Date: Tue, 23 Apr 2019 13:17:35 +0000 Message-ID: <4ad21e34c107837f839ec02f5d063fc78ac1a806.1556024424.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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: 49fce5f3-b057-49c5-bdb5-08d6c7ee0c90 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3100; x-ms-traffictypediagnostic: DM6PR11MB3100: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(396003)(39850400004)(346002)(366004)(189003)(199004)(52116002)(99286004)(8676002)(7736002)(6116002)(478600001)(76176011)(305945005)(3846002)(4326008)(97736004)(25786009)(316002)(118296001)(72206003)(53936002)(50226002)(107886003)(81166006)(81156014)(66066001)(14454004)(6512007)(54906003)(8936002)(5660300002)(446003)(68736007)(14444005)(386003)(186003)(6486002)(486006)(11346002)(476003)(2616005)(44832011)(26005)(36756003)(6506007)(2906002)(6436002)(102836004)(256004)(64756008)(66446008)(66556008)(66476007)(73956011)(66946007)(6916009)(71200400001)(86362001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3100; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: UgsSHigTRqKH7JQ4SswPWUc1g3/d8kCCk/a7kSFkBrMLHh4AexqaH1D9ENJeyidD3D/Ux0ffCE4t1NQwVeL16BgxKiYooFU4SP3wCkhHfNHqdb8GpYGLF3KwjgkjpASHP9ZwtDaKMHovTd6FuWhq6xClrYkfrpcduIuHaoB+NBG5CZfYereDogSMb7GSpiTgRei4FkszBKSyUO68P26Gtr/nTPoppcNSy8pxNAwTLdoCD1eosOAcJJ0aWP2qJCqoHBLOGIw153/qjgKYxCPqlJxap+etVAIkUbb+NDGjtX6VjMs3DYL3O1A7PKNPiiMa63zIDy5/oMq5CBmBRN+PzUK4cGzS2KBumFziYOs6roQT0n8jVtX9x7oxSDeB7ZMIMqFGy/kFHJhjz56cX1c2NoRyYoDDNXeGLWajVdJtVAI= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 49fce5f3-b057-49c5-bdb5-08d6c7ee0c90 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:17:35.1043 (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: DM6PR11MB3100 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 --- 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 538593261ae3..76d8156779df 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 Tue Apr 23 13:17:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1089374 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="SXeKLSEa"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPBk3wSkz9sNN for ; Tue, 23 Apr 2019 23:17:50 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727820AbfDWNRt (ORCPT ); Tue, 23 Apr 2019 09:17:49 -0400 Received: from mail-eopbgr780083.outbound.protection.outlook.com ([40.107.78.83]:25568 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727804AbfDWNRs (ORCPT ); Tue, 23 Apr 2019 09:17: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=SXeKLSEafGKh+3yyskR1THE8zAHBuF9aqbnAFDSVfBy4yIOYLintOQlSSFxiMwPgOB3IKXVmK/SuQ92pG9EaVwoxVUx0rt8fKYSpytVUr8qQ7gLF7gXMjGUsz0E/5uNfSndTI2w90Ps6wH5foFQJ3e2vJ3trrMnrTMVkFZ9ufoc= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3100.namprd11.prod.outlook.com (20.177.219.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.18; Tue, 23 Apr 2019 13:17:38 +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; Tue, 23 Apr 2019 13:17:38 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v2 net-next 04/16] net: aquantia: link interrupt handling function Thread-Topic: [PATCH v2 net-next 04/16] net: aquantia: link interrupt handling function Thread-Index: AQHU+dbsgBpRH3E3d0uEitlYkKpfIA== Date: Tue, 23 Apr 2019 13:17:38 +0000 Message-ID: <611974e4c4d2e5d2c0eaa49493619604ed7b0094.1556024424.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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: 390c7bde-628a-49eb-9525-08d6c7ee0e33 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3100; x-ms-traffictypediagnostic: DM6PR11MB3100: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(396003)(39850400004)(346002)(366004)(189003)(199004)(52116002)(99286004)(8676002)(7736002)(6116002)(478600001)(76176011)(305945005)(3846002)(4326008)(97736004)(25786009)(316002)(118296001)(72206003)(53936002)(50226002)(107886003)(81166006)(81156014)(66066001)(14454004)(6512007)(4744005)(54906003)(8936002)(5660300002)(446003)(68736007)(14444005)(386003)(186003)(6486002)(486006)(11346002)(476003)(2616005)(44832011)(26005)(36756003)(6506007)(2906002)(6436002)(102836004)(256004)(64756008)(66446008)(66556008)(66476007)(73956011)(66946007)(6916009)(71200400001)(86362001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3100; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: 56sPOyl0W1ZHpuEqnzd/ef69sUw7Kn2OuyGj9JGqzeiU/KufcKdJF73XYcNRDQKFXtll/IRfW1XKpVybPgGEwQGfLrsg2jdSn9XeDLuempjwn+5ojRUzamS2EdSEP01TyuaAs9QXkgdMpQDqIT1ahafy4Ndz3N1fJSSSc0HW8s7k7mbNiUx4Kz5QcXVPlrKaH2fAjkjXf+tIXXleNPyPuYvO0MfKBwV1LoSwQ9Nh+WW14QxciTNbzfskGTAXxGk7+JscUHHK/dQMC18jOZyiX1jxrlpNOdN16YjR9DuZpePZl5ozwzTByVyRyeWywFCCUC+2ZYP+7Qxw/qcYp0xRtBmz1IfsgM/uC1U5qk0GinxGuhCj7ZawZjY8sDBqZwrtdft9iLzRtKUOIGQynpuZ8PbE2rzNZEcXGSVRItAxh2o= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 390c7bde-628a-49eb-9525-08d6c7ee0e33 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:17:38.0093 (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: DM6PR11MB3100 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 Tue Apr 23 13:17:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1089387 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="U/Ozq6sy"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPCG6G42z9sNs for ; Tue, 23 Apr 2019 23:18:18 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727830AbfDWNRw (ORCPT ); Tue, 23 Apr 2019 09:17:52 -0400 Received: from mail-eopbgr780083.outbound.protection.outlook.com ([40.107.78.83]:25568 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727814AbfDWNRv (ORCPT ); Tue, 23 Apr 2019 09:17:51 -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=U/Ozq6syZlJcXrcKllkE4MoQvXfpBFV6bBVp1B6rKInACeouL+Zl/qA3fkTcqsHkJgbbtLJyKesg/Ug7PSovVGR+R1aBo6DPbZESuB2sdcST/x51qyLG09edHrCEyzF84qsFIp2Z66bOLMeQj5q0yJ7fDm2K7V1KXVzDX+Bbms0= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3100.namprd11.prod.outlook.com (20.177.219.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.18; Tue, 23 Apr 2019 13:17:40 +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; Tue, 23 Apr 2019 13:17:40 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v2 net-next 05/16] net: aquantia: create global service workqueue Thread-Topic: [PATCH v2 net-next 05/16] net: aquantia: create global service workqueue Thread-Index: AQHU+dbt2xaDfzNgRUWitTzQtnzhZQ== Date: Tue, 23 Apr 2019 13:17:40 +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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: 1c2ae624-59ae-4231-072d-08d6c7ee0fe2 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3100; x-ms-traffictypediagnostic: DM6PR11MB3100: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(396003)(39850400004)(346002)(366004)(189003)(199004)(52116002)(99286004)(8676002)(7736002)(6116002)(478600001)(76176011)(305945005)(3846002)(4326008)(97736004)(25786009)(316002)(118296001)(72206003)(53936002)(50226002)(107886003)(81166006)(81156014)(66066001)(14454004)(6512007)(54906003)(8936002)(5660300002)(446003)(68736007)(14444005)(386003)(186003)(6486002)(486006)(11346002)(476003)(2616005)(44832011)(26005)(36756003)(6506007)(2906002)(6436002)(102836004)(256004)(64756008)(66446008)(66556008)(66476007)(73956011)(66946007)(6916009)(71200400001)(86362001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3100; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: gP++4/DGctqJfMsZ5ykuwRuMAuLaoVOV0FdDClfh8WFWtEBlQVspwibXktCa/RR73ZPZHwgtKOiXB1EV5hLSN6HDRExyHNBdNY9bdOUwtDUiXBn07V0V28CjJVIFYTbiVHxwd84LBE5xE6MOnxFjQD0ptHFW5KXpcpGsA1N67rkgLd7Y/SBj5ipotSIDELSN7FKsxSeYmMlKn3HABYAYRNifb/7DJc6ZaP6/AUWEMYb8mUfU3P3omSpEE9BCjevyy/maSfP7UHQy2+/2tWDUitoC28gfOzVVJi3WhKXXkJSvR+MB0oOsGQlXqvmkTejQZiU+LksJ5sYJVO3d2c3r0ZGSWwdgReCV17MGvAtofQAxpP9QclAZbD1SqexDhGEiLiZwpVzImx6vXm2bakOBDhUjDPQ3+H0kdF6KHBiL/3Y= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c2ae624-59ae-4231-072d-08d6c7ee0fe2 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:17:40.5241 (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: DM6PR11MB3100 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 --- .../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 Tue Apr 23 13:17: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: 1089383 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="Yylz4fuH"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPC50lLCz9s3q for ; Tue, 23 Apr 2019 23:18:09 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727865AbfDWNR7 (ORCPT ); Tue, 23 Apr 2019 09:17:59 -0400 Received: from mail-eopbgr780083.outbound.protection.outlook.com ([40.107.78.83]:25568 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727804AbfDWNR5 (ORCPT ); Tue, 23 Apr 2019 09:17: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=DXDih1vj4P7M5N3ZkkSxSZXIUs6Q/bnI5oanSi4VZJM=; b=Yylz4fuHY7rSYi/6u5O8oEzz1iOMPDAFxvR/3He2lYb8WNbuBQNWHOyvf3fLLBDOcVvfzeFjkG5UIoy9k9hYXkQ30yMpn6k18BjSWR0dcCLnmyXGrb8c1FQAzwJlBrgzPZIN8uK0wD23Xpb1OZbEn+njDZH3wsNutzBzMgeocgM= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3100.namprd11.prod.outlook.com (20.177.219.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.18; Tue, 23 Apr 2019 13:17:43 +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; Tue, 23 Apr 2019 13:17:43 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh Subject: [PATCH v2 net-next 06/16] net: aquantia: link status irq handling Thread-Topic: [PATCH v2 net-next 06/16] net: aquantia: link status irq handling Thread-Index: AQHU+dbupSGooxbSAESvzb2NbPfrpw== Date: Tue, 23 Apr 2019 13:17: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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: bd888f64-f0e2-4bfe-dda8-08d6c7ee113d x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3100; x-ms-traffictypediagnostic: DM6PR11MB3100: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(396003)(39850400004)(346002)(366004)(189003)(199004)(52116002)(99286004)(8676002)(7736002)(6116002)(478600001)(76176011)(305945005)(3846002)(4326008)(97736004)(25786009)(316002)(118296001)(72206003)(53936002)(50226002)(107886003)(81166006)(81156014)(66066001)(14454004)(6512007)(54906003)(8936002)(5660300002)(446003)(68736007)(14444005)(386003)(186003)(6486002)(486006)(11346002)(476003)(2616005)(44832011)(26005)(36756003)(6506007)(2906002)(6436002)(102836004)(256004)(64756008)(66446008)(66556008)(66476007)(73956011)(66946007)(6916009)(71200400001)(86362001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3100; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: aIm/Rh9SFGbdi2pYorwskmTwuOlG72k974VOqFVY/HVgsSZR8mz8Lp/A5CudTWQ6b1tVmuPxDhU8YnHNdnHpG4oZkZqN8qpCuAgSPmA9XGVmISMPngljiZ+GPqChxvNnt6d2JLbbDZsXNhY3YtDL+gE1L5xCGDR6Q7jfuViChBy2X9rJmyOUIzv0WPiFr2wehd/RnUVPZHzdBlWs6VuhC+pww9YVnnLLOEFLGn6FnmpRTfQiDlGwBH5dzDydrfG6l4f9tD8mwTxRTsoEPkZmQylBxgNIEwYOAXs+Lg86fr94s82yBtJMB85g/p8klZYCf5qvxAa6L2yxFwFwPnDcxXx9Ialyk893aI5Mop8tuk+aT+z1boQRVP8ZNxShS37bMW65z1tobE6cVWRUujZf6iNP1GlI6U+Gg4MynLrrzZg= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: bd888f64-f0e2-4bfe-dda8-08d6c7ee113d X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:17:42.8367 (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: DM6PR11MB3100 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 --- .../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 Tue Apr 23 13:17:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1089376 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="bhSZ8m/Y"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPBq1X78z9sNN for ; Tue, 23 Apr 2019 23:17:55 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727844AbfDWNRy (ORCPT ); Tue, 23 Apr 2019 09:17:54 -0400 Received: from mail-eopbgr780082.outbound.protection.outlook.com ([40.107.78.82]:5312 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727824AbfDWNRx (ORCPT ); Tue, 23 Apr 2019 09:17:53 -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=bhSZ8m/YbWjwvh8J+JKvEkyPtqfsvK7mkOhmyHIg5YBye1Dzf71fZ8vw07J7Ja8x3nUfWfp7do1Az1Dv0hf1JwRSpvrzE+aRnTI4CgFtgZi9T6Jza8iZ14z+z1UKCMKQhKRdJ4dyCiekcsV33YOrpHSMU4lO+1qDQTh2kuAlHfE= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3100.namprd11.prod.outlook.com (20.177.219.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.18; Tue, 23 Apr 2019 13:17:45 +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; Tue, 23 Apr 2019 13:17:45 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh Subject: [PATCH v2 net-next 07/16] net: aquantia: improve ifup link detection Thread-Topic: [PATCH v2 net-next 07/16] net: aquantia: improve ifup link detection Thread-Index: AQHU+dbwUOQxpI4yZk+eeL6GcRR5gg== Date: Tue, 23 Apr 2019 13:17:45 +0000 Message-ID: <91aaa6bbd8ea37bc8660390bdb5d066a4c987d65.1556024424.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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: 9f7cc945-65be-4263-e90c-08d6c7ee129c x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3100; x-ms-traffictypediagnostic: DM6PR11MB3100: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(396003)(39850400004)(346002)(366004)(189003)(199004)(52116002)(99286004)(8676002)(7736002)(6116002)(478600001)(76176011)(305945005)(3846002)(4326008)(97736004)(25786009)(316002)(118296001)(72206003)(53936002)(50226002)(107886003)(81166006)(81156014)(66066001)(14454004)(6512007)(4744005)(54906003)(8936002)(5660300002)(446003)(68736007)(386003)(186003)(6486002)(486006)(11346002)(476003)(2616005)(44832011)(26005)(36756003)(6506007)(2906002)(6436002)(102836004)(256004)(64756008)(66446008)(66556008)(66476007)(73956011)(66946007)(6916009)(71200400001)(86362001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3100; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: HMVtrubcOmO1LnHn/qA94tN5WX/+Qyyqx0rtOOgbZ9uRFdeHN267Yfc3/KDT8W+/1HQvTQbvQfjfhWNFjTCIaW8GF8SCwbtQpHgBgI9R3uZRjZ+IdYwqvil3WspISde0wnxiox4w29FtgfULk3cytyvwMWM3eissWmuo1Zf3jFMtzvs5wdEbt8FxqrPawQluZ1rLACT00x6mUpWj9w711RQ8wuh4gxEJWepDOl09hLj+SFv45hgY+s6rvxR6gb5aLesl0+5Zg33WySr38rNck0LmfhbStOw27qklVQwvPLmJGhpBfQRUbakfzhyJmry9hvvd6jWc4ov3cVZceypAuW8cGJjuw+qKl0gayBbjYP5pA0IQjoCC/BoimJplfg5e5z8RF0m9PAqkXjb4z9BbcrtG6MU6JtKYXhn/Di6BZt4= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f7cc945-65be-4263-e90c-08d6c7ee129c X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:17:45.0732 (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: DM6PR11MB3100 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 Tue Apr 23 13:17: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: 1089378 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="rjhSTFV9"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPBs63m9z9sNs for ; Tue, 23 Apr 2019 23:17:57 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727857AbfDWNR4 (ORCPT ); Tue, 23 Apr 2019 09:17:56 -0400 Received: from mail-eopbgr780082.outbound.protection.outlook.com ([40.107.78.82]:5312 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727228AbfDWNRx (ORCPT ); Tue, 23 Apr 2019 09:17:53 -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=rjhSTFV9NZ6KJfzFv1e6cvKWYkQgkvM3YnWRnGtzCdiEYXq9j0uJLdRT+6fzWWf3339ZCCtZq4A4Bhx+yR360P0bwlJ2vv2zpqoEgSJ44lAlCW+wp7hlagz6yQqTJxZ/qFiHJxCoTBgStU/n2uDkbfPCzCHenxS/Qq62FefMB9I= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3100.namprd11.prod.outlook.com (20.177.219.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.18; Tue, 23 Apr 2019 13:17:48 +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; Tue, 23 Apr 2019 13:17:47 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v2 net-next 08/16] net: aquantia: use macros for better visibility Thread-Topic: [PATCH v2 net-next 08/16] net: aquantia: use macros for better visibility Thread-Index: AQHU+dbxODT22zqgGk68TakkaVkkrg== Date: Tue, 23 Apr 2019 13:17:47 +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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: ed00ac61-ad63-42f9-ad1a-08d6c7ee1416 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3100; x-ms-traffictypediagnostic: DM6PR11MB3100: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(396003)(39850400004)(346002)(366004)(189003)(199004)(52116002)(99286004)(8676002)(7736002)(6116002)(478600001)(76176011)(305945005)(3846002)(4326008)(97736004)(25786009)(316002)(118296001)(72206003)(53936002)(50226002)(107886003)(81166006)(81156014)(66066001)(14454004)(6512007)(54906003)(8936002)(5660300002)(446003)(68736007)(386003)(186003)(6486002)(486006)(11346002)(476003)(2616005)(44832011)(26005)(36756003)(6506007)(2906002)(6436002)(102836004)(256004)(64756008)(66446008)(66556008)(66476007)(73956011)(66946007)(6916009)(71200400001)(86362001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3100; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: 8M7KsT2p1JoeDbeENcrxPIxkOScrblk17tUkum//hk0fJgoisRcqVGYvokOovHQchGn4invXnamJEpsFHqAgXZIexISTe7hTCOqaS8s8QmF3EtbCnv4QflSwgxsziagvD/UMX61O/5HVJIdCzMXrYKltagvnCqBGjoFfWbra+dqepeDJQV3jIHPfLx+EsWVkwT0u24LUcGKfkcoi9/JDK2WkABSNTywo4o5uhu3IhkPcKZo07a8d6Yw18adX8HO+mLfxa0ejDU9M9eO/4XcBj8+N9AeP3B0uvaKRiDPC94bFqLyg5oKRCnEnz6VPy3NhyU/oUwj+SSqylWormwQpx/DjZF317QLDrz+spTI0nKWp43S2OetZyn1x25zGR3borVFSaw0nhQUp0GxYXSKEycQotm0C+ifQuei8w8HawMk= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ed00ac61-ad63-42f9-ad1a-08d6c7ee1416 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:17:47.7261 (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: DM6PR11MB3100 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 --- 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 Tue Apr 23 13:17: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: 1089377 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="oggE9h4K"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPBs271hz9s3q for ; Tue, 23 Apr 2019 23:17:57 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727852AbfDWNR4 (ORCPT ); Tue, 23 Apr 2019 09:17:56 -0400 Received: from mail-eopbgr780082.outbound.protection.outlook.com ([40.107.78.82]:5312 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727840AbfDWNRy (ORCPT ); Tue, 23 Apr 2019 09:17:54 -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=oggE9h4KCuow4ySZoE7I9NKzUXqWSFlWz/IpbwjLyt6idXGKnTPmC727L2U1T/Jvat43OnK06hL+o31fw4u2EokL+k5L3x+Z/TeU/sNpGotokmVS2vT1MOXNPn/mpv/hiu6aP4gvVQzcgtPMIEb6iqw/5tJy9sdEm1Q4KM7Tbj0= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3100.namprd11.prod.outlook.com (20.177.219.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.18; Tue, 23 Apr 2019 13:17: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; Tue, 23 Apr 2019 13:17:50 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v2 net-next 09/16] net: aquantia: user correct MSI irq type Thread-Topic: [PATCH v2 net-next 09/16] net: aquantia: user correct MSI irq type Thread-Index: AQHU+dbzX4tCt1P8HkeTIxjLIJ//sQ== Date: Tue, 23 Apr 2019 13:17:50 +0000 Message-ID: <755abd73ced469a268771091e7d571d899ad5726.1556024424.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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: f796532e-e23a-4ccf-d7da-08d6c7ee15ac x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3100; x-ms-traffictypediagnostic: DM6PR11MB3100: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(396003)(39850400004)(346002)(366004)(189003)(199004)(52116002)(99286004)(8676002)(7736002)(6116002)(478600001)(76176011)(305945005)(3846002)(4326008)(97736004)(25786009)(316002)(118296001)(72206003)(53936002)(50226002)(107886003)(81166006)(81156014)(66066001)(14454004)(6512007)(4744005)(54906003)(8936002)(5660300002)(446003)(68736007)(14444005)(386003)(186003)(6486002)(486006)(11346002)(476003)(2616005)(44832011)(26005)(36756003)(6506007)(2906002)(6436002)(102836004)(256004)(64756008)(66446008)(66556008)(66476007)(73956011)(66946007)(6916009)(71200400001)(86362001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3100; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: A77EAqhsKKLul04xdnu2Uy93lJZr59SKUBKMVRbBfSyA0fNRV2mHlLqCoPAFvKujLea3U27S42+YeZa0MVZWURYSqXR+T84iZSVQ+qmUOjc+9aBldWsD4N4FdCtYi5oCuPP6JV/7Gn04PuwjNejEwJcM1rWiOpZfcAoY7SMzhKGOynb8HmwUu1+/konKdRZ7eIHh8kggAjwK4kK2JON8pvsk2dIwwCiH/8W3JBgN4DOHiHcWZHakjMsSXATsYQp4yyhG47ohHnewqi8uKAHUB9QZ9qzRsN7BLyCuttbA19E9/YNp9+RO3b+pl9TzbBTXqwQx+zTqp9vAycttjNAdu28tIweWUTBT1vSP8W/V197NuJAd5k4YiKO9b0wp8fSzfkLYWoNUB7mDBsTGSzAUXlJV5i+uV3dQ47+qIGbWIaU= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f796532e-e23a-4ccf-d7da-08d6c7ee15ac X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:17:50.2599 (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: DM6PR11MB3100 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 --- 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 Tue Apr 23 13:17: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: 1089386 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="lmbLv2sq"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPCD0ssbz9sNr for ; Tue, 23 Apr 2019 23:18:16 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727909AbfDWNSP (ORCPT ); Tue, 23 Apr 2019 09:18:15 -0400 Received: from mail-eopbgr780082.outbound.protection.outlook.com ([40.107.78.82]:5312 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727824AbfDWNRz (ORCPT ); Tue, 23 Apr 2019 09:17: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=nOj38R2Masl7kKfsQUDiyBbdii7Pf2omRivehdPG56s=; b=lmbLv2sqvMHOlnvqud5fsaB40UHn1omo504npjoWUXutQSbNUigWNYGwAzItenZuDzUskH64sGSfBKDkTIEenIaW05nt3i61/gDyEXtRLify+CMC6ujV8Do17U+Cg43QQAOzDEzGIZY6E85fTrRCy4J2Owh6d4vhTeHC1HTMY3s= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3100.namprd11.prod.outlook.com (20.177.219.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.18; Tue, 23 Apr 2019 13:17: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; Tue, 23 Apr 2019 13:17:52 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v2 net-next 10/16] net: aquantia: introduce fwreq mutex Thread-Topic: [PATCH v2 net-next 10/16] net: aquantia: introduce fwreq mutex Thread-Index: AQHU+db0EW3Mx9c3ZkCmleIcpGwQTQ== Date: Tue, 23 Apr 2019 13:17:52 +0000 Message-ID: <3202cba7f44d08d55d874a276561148fa2aea023.1556024424.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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: 9b87fc26-c3ec-4d68-1755-08d6c7ee172e x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3100; x-ms-traffictypediagnostic: DM6PR11MB3100: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(396003)(39850400004)(346002)(366004)(189003)(199004)(52116002)(99286004)(8676002)(7736002)(6116002)(478600001)(76176011)(305945005)(3846002)(4326008)(97736004)(25786009)(316002)(118296001)(72206003)(53936002)(50226002)(107886003)(81166006)(81156014)(66066001)(14454004)(6512007)(54906003)(8936002)(5660300002)(446003)(68736007)(14444005)(386003)(186003)(6486002)(486006)(11346002)(476003)(2616005)(44832011)(26005)(36756003)(6506007)(2906002)(6436002)(102836004)(256004)(64756008)(66446008)(66556008)(66476007)(73956011)(66946007)(6916009)(71200400001)(86362001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3100; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: hnpvQXritVWlOVoNUK6DKW0Ly6B3Y1RYop7mqyVPV907HTC9rM141jOkT8vhZFBlc6cGTni6oon/YwF6AjI5bLA77OeeVJosIB/5cDJ8cOww53uFh07hI3w+ULZUz8gfoDumGvZGnDqoI0bjsds8AAR9kxnrQRCivF8WDSD0s5jWG1+nqhcVRz1MXgtode+txDOHLiLuJuOVBUxSwD5qTOVpj3vkUfLaXSQHFPxvkGyVdkaMuU+seriUlJ+0oexUpeTVrnLaT5ORFp79dEblTpdp8IedmXrjwnfaxddPAe0W5SGIge6rulvKtVLNKbQMMAFrRw9reEqRLiN5AEyFffnfSfqUmoY44z2FB9DbKEgbjhaU5hejcR/tqyOjnNqEpISPgxEIRjiauFDdjN9m2DG7pc8c6iJJBtlzIylhGRA= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b87fc26-c3ec-4d68-1755-08d6c7ee172e X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:17:52.7356 (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: DM6PR11MB3100 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 --- drivers/net/ethernet/aquantia/atlantic/aq_nic.h | 2 ++ drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c | 2 ++ 2 files changed, 4 insertions(+) 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 Tue Apr 23 13:17: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: 1089380 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="GfHdgGac"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPBz4JKbz9s3q for ; Tue, 23 Apr 2019 23:18:03 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727872AbfDWNSA (ORCPT ); Tue, 23 Apr 2019 09:18:00 -0400 Received: from mail-eopbgr780082.outbound.protection.outlook.com ([40.107.78.82]:5312 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727840AbfDWNR5 (ORCPT ); Tue, 23 Apr 2019 09:17: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=ZVDyGwgHbVUpp0Tyv3rnNS1nwNN7Z9hWKoZdnzyzBa0=; b=GfHdgGacGIZWxlKEuDnM4IttmJI3xNj9UzJhTrLXBY8AEuMear8EEXRjzTZFag1iUUM2vtEHAC/1UXYm0FXjVzp8CZsJHHX1WBE1n9qLoL4sihGpEk5bbEPPJrXyurZB75n9YcLBjSJm6tLoXCjq+Wt1Tgjc/e3F9u/yD4FUNyA= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3100.namprd11.prod.outlook.com (20.177.219.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.18; Tue, 23 Apr 2019 13:17: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; Tue, 23 Apr 2019 13:17:55 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v2 net-next 11/16] net: aquantia: extract timer cb into work job Thread-Topic: [PATCH v2 net-next 11/16] net: aquantia: extract timer cb into work job Thread-Index: AQHU+db28wjWGX/UqU+T6Ofpg5Ua9g== Date: Tue, 23 Apr 2019 13:17:55 +0000 Message-ID: <7cd467eace3922fa693d30bba1fb5574fcea72fa.1556024424.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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: 2740d98f-c6ee-4fb0-4cdc-08d6c7ee18aa x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3100; x-ms-traffictypediagnostic: DM6PR11MB3100: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(396003)(39850400004)(346002)(366004)(189003)(199004)(52116002)(99286004)(8676002)(7736002)(6116002)(478600001)(76176011)(305945005)(3846002)(4326008)(97736004)(25786009)(316002)(118296001)(72206003)(53936002)(50226002)(107886003)(81166006)(81156014)(66066001)(14454004)(6512007)(54906003)(8936002)(5660300002)(446003)(68736007)(14444005)(386003)(186003)(6486002)(486006)(11346002)(476003)(2616005)(44832011)(26005)(36756003)(6506007)(2906002)(6436002)(102836004)(256004)(64756008)(66446008)(66556008)(66476007)(73956011)(66946007)(6916009)(71200400001)(86362001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3100; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: fYSsCDg7H8jvgvcgnUDkE512BU3lD2o4vL/rD016xl4j5ngu2J/6G2K1p0JgzVS9r5RseaFbN4yHnnp+LjxtHBmqQ4MwToxxC37tnElA5+A2E8n93tMgP4OcgpeNgGBXzCriL4Z00EWQS9v7XSmbtRZBVUsDpZFPqfSfSCxzV9kzwBS7FGw/svg6bSiEEWmVWgihI6IHgZMOO3iwlgqaBN5G4HkURnDWzWGI3Dmz5wpC4Aq2IQmHQrzwwM6DDpP3798dTk67RLN4pCLV7TSy7uBt7z0VjR5Qy7YNfl9oISRYvvM5Zd1SYq8RilcMlDpJlDhnZst6nBYt0d4XP9zUp2PZ7NN5uNwpwm+FaO0m0nE7yI2RursGmrM+2PsZwAp487n/b8TzVREKzUWzkmzACRXTkVN3Mb0Fu9lFnnFdojY= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2740d98f-c6ee-4fb0-4cdc-08d6c7ee18aa X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:17:55.2293 (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: DM6PR11MB3100 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 6de0d1c0ed79..b8f6f4129f44 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) @@ -354,6 +363,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); @@ -904,6 +916,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 Tue Apr 23 13:17: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: 1089379 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="A9Gdk7QA"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPBx4fxFz9s3q for ; Tue, 23 Apr 2019 23:18:01 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727877AbfDWNSA (ORCPT ); Tue, 23 Apr 2019 09:18:00 -0400 Received: from mail-eopbgr780083.outbound.protection.outlook.com ([40.107.78.83]:25568 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727228AbfDWNR7 (ORCPT ); Tue, 23 Apr 2019 09:17: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=Yva9zbDU8ZuXyKJMl7CS8OnU2ms1okvTr2+5fcohrXM=; b=A9Gdk7QAIYM4BajbrEC4Ig2z5/p8sMQV4/cbweKeZ/zbEIxSxwk/+38g0t1ErUwBLNASS/5C9/wo2eWuk5KyQaUYaBnAwqcsi9tjFDCu51yRBlyzKLAKtgjeD7VaSjtPlW0qPqeeovAvqRRwb/mSdr/XCZAOZ0cuAXd5K35IVrY= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3100.namprd11.prod.outlook.com (20.177.219.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.18; Tue, 23 Apr 2019 13:17:58 +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; Tue, 23 Apr 2019 13:17:57 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v2 net-next 12/16] net: aquantia: wrap fw ops by mutex Thread-Topic: [PATCH v2 net-next 12/16] net: aquantia: wrap fw ops by mutex Thread-Index: AQHU+db3t9MTn8ZAK0OfzQIp34vVFQ== Date: Tue, 23 Apr 2019 13:17:57 +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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: 5362d943-7928-446c-8631-08d6c7ee1a24 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3100; x-ms-traffictypediagnostic: DM6PR11MB3100: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(396003)(39850400004)(346002)(366004)(189003)(199004)(52116002)(99286004)(8676002)(7736002)(6116002)(478600001)(76176011)(305945005)(3846002)(4326008)(97736004)(25786009)(316002)(118296001)(72206003)(53936002)(50226002)(107886003)(81166006)(81156014)(66066001)(14454004)(6512007)(54906003)(8936002)(5660300002)(446003)(68736007)(14444005)(386003)(186003)(6486002)(486006)(11346002)(476003)(2616005)(44832011)(26005)(36756003)(6506007)(2906002)(6436002)(102836004)(256004)(64756008)(66446008)(66556008)(66476007)(73956011)(66946007)(6916009)(71200400001)(86362001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3100; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: vuzvsfCD2qvcf99o3ZBFk6D1ZloA0lvavTZzbpODL1hB1oe7ME9K16JO2x3kpBIFunIgOwCQ8YdYeUIBaJk/VJG7IAdLulit4rdyPVok8/WP57YgBSniDvm/y/LgNC+royiksVAsrlghryquPhqs2Hs0XH6qVW3BzjJ7viLiIugqJzbMToud+m8/ipVewltzIrhnHK9CjywZHhGqQRfXbQ4vfo2am4BCw3S56WaP/HB4BnP0E8/YtXfpZL/z8RzXX19Yw7CDj7YvsrPRP+tmzI6FsUlBlx34qELt3JM4EogDRrEhNaqf4KBHE3KOXoXxm39ratuji21BLYHWfaqHxsVGl83MX5pi7ZS/3DVHyML/KKLo/wb/sfJ15mgGYuvUqvYK4IQadPL7AxUYQ1YTujQLYTyAIN6sDB7Q/PHrA/I= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5362d943-7928-446c-8631-08d6c7ee1a24 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:17:57.7261 (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: DM6PR11MB3100 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Nikita Danilov Since fw ops may be invoked from different threads all its invocation must be wrapped by mutex. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh --- .../ethernet/aquantia/atlantic/aq_ethtool.c | 22 +++++++++++++--- .../net/ethernet/aquantia/atlantic/aq_nic.c | 26 ++++++++++++++----- 2 files changed, 38 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 b8f6f4129f44..454a44bb148e 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_nic.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_nic.c @@ -243,8 +243,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; @@ -313,7 +315,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; @@ -883,7 +887,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; @@ -944,14 +950,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:; } From patchwork Tue Apr 23 13:17:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 1089381 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="F4W8Hz+k"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPC12qPXz9s3q for ; Tue, 23 Apr 2019 23:18:05 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727882AbfDWNSD (ORCPT ); Tue, 23 Apr 2019 09:18:03 -0400 Received: from mail-eopbgr780047.outbound.protection.outlook.com ([40.107.78.47]:50771 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727228AbfDWNSC (ORCPT ); Tue, 23 Apr 2019 09:18: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=kTT3owiX1IZ2So/8pigCetjG2t8mCBpGkSRY3SFWN+o=; b=F4W8Hz+kzE0qYIpppCd4dx0ZDxk0hMKgD7gArp73kLjP20VGB7Axca0YJ0g7rsEhtAFwD1s6yfE0U+NbilT8WnLZHcOumqZg3F6iQ4ND5mdVywLm64bVSoOUxeowc9NnBN61zviRJhVc9qC8TUihuAjBMfUKP7X0yIWWKYENwvE= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3100.namprd11.prod.outlook.com (20.177.219.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.18; Tue, 23 Apr 2019 13:18: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; Tue, 23 Apr 2019 13:18:00 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh Subject: [PATCH v2 net-next 13/16] net: aquantia: fetch up to date statistics on ethtool request Thread-Topic: [PATCH v2 net-next 13/16] net: aquantia: fetch up to date statistics on ethtool request Thread-Index: AQHU+db5XVWwFsAq4k61Rcd69xuBPQ== Date: Tue, 23 Apr 2019 13:17:59 +0000 Message-ID: <309db3944d01e344f5f00bb606fe0a2dfb1bc3b4.1556024424.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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: cef5769c-b99c-4679-4ee5-08d6c7ee1b7d x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3100; x-ms-traffictypediagnostic: DM6PR11MB3100: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(396003)(39850400004)(346002)(366004)(189003)(199004)(52116002)(99286004)(8676002)(7736002)(6116002)(478600001)(76176011)(305945005)(3846002)(4326008)(97736004)(25786009)(316002)(118296001)(72206003)(53936002)(50226002)(107886003)(81166006)(81156014)(66066001)(14454004)(6512007)(54906003)(8936002)(5660300002)(446003)(68736007)(14444005)(386003)(186003)(6486002)(486006)(11346002)(476003)(2616005)(44832011)(26005)(36756003)(6506007)(2906002)(6436002)(102836004)(256004)(64756008)(66446008)(66556008)(66476007)(73956011)(66946007)(6916009)(71200400001)(86362001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3100; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: rCwBR8d7IDWkvCQVorFogTsCxFAEO4CEGyD3tF3pS0TaYvGSsGEwzLmneGIFKSaeuQP5IOnUv1KZZTs/wx5g8INWi4lFUBZB3P9lb4qWx/v+ay0SlktsYAOaTBMw1wTyN7iPpsx6WYkG10tyHHOYBC7L5yiyvItY/1zMmUi/foJ6Gy27Qo/v3boymVFWzF0GQ/h4COEQl/yiyokZv2p7xyLM8cw2e4RV1p5Eu1PEcmuEULQH8FmgJZ9KPeNNF9vvgG353DhDamCaVVgkiehevGXz1wvaAszXf7gH9w8FfKyXDbrQs+6vnZlqEGa7Qx3eQ2+4373X3ALz0lbQxO58zHLtUrvwJ45vSZboXtQZqZTjTmgGoRkY8QVrH/mEUgL+W/ekZf5zLJ5UpSBgHBWBX72MgL8/9xXG2diF9k5zNeA= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: cef5769c-b99c-4679-4ee5-08d6c7ee1b7d X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:17:59.9936 (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: DM6PR11MB3100 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 Tue Apr 23 13:18: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: 1089382 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="Z7H+BEed"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPC324JCz9s3q for ; Tue, 23 Apr 2019 23:18:07 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727891AbfDWNSG (ORCPT ); Tue, 23 Apr 2019 09:18:06 -0400 Received: from mail-eopbgr780074.outbound.protection.outlook.com ([40.107.78.74]:5976 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727884AbfDWNSE (ORCPT ); Tue, 23 Apr 2019 09:18:04 -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=Z7H+BEedCLfaKvQyQm+78pYTlmysEhCiJgfW7mWP6iIp+v40iciuq+l2vkD+HAD9WEe+oMjxpMGT/PMGuAXiKr4bN2XTJuLfCwtWp3lqY1uZ6x68EQX4+AJ8H+j3pce2wFvQmV+ZQ3ukp6vsH0im93Bbq2f7h8+jiOfqGHpxwOk= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB3100.namprd11.prod.outlook.com (20.177.219.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.18; Tue, 23 Apr 2019 13:18: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; Tue, 23 Apr 2019 13:18:02 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v2 net-next 14/16] net: aquantia: get total counters from DMA block Thread-Topic: [PATCH v2 net-next 14/16] net: aquantia: get total counters from DMA block Thread-Index: AQHU+db6c9dWV3oIrUelGuD693G5yg== Date: Tue, 23 Apr 2019 13:18: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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: 8af601c3-1b74-4034-f5d2-08d6c7ee1cfb x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB3100; x-ms-traffictypediagnostic: DM6PR11MB3100: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(396003)(39850400004)(346002)(366004)(189003)(199004)(52116002)(99286004)(8676002)(7736002)(6116002)(478600001)(76176011)(305945005)(3846002)(4326008)(97736004)(25786009)(316002)(118296001)(72206003)(53936002)(50226002)(107886003)(81166006)(81156014)(66066001)(14454004)(6512007)(54906003)(8936002)(5660300002)(446003)(68736007)(14444005)(386003)(186003)(6486002)(486006)(11346002)(476003)(2616005)(44832011)(26005)(36756003)(6506007)(2906002)(6436002)(102836004)(256004)(64756008)(66446008)(66556008)(66476007)(73956011)(66946007)(6916009)(71200400001)(86362001)(71190400001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB3100; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: VLMTDFNnxQdq6zzlrW0YbXdZIPPk9zw92bDuubdN4SfD8mq7qQaiv8/0YDBDGnC6CiuvZerZWG10K1+qsE/K/0+SpA923q4pQwLHnvDnmH3YF0mR3PLAc3xJ7b8vmjfsCtXwQNztR5VPnFDKc37it9UxnhlV2EfbaiXNbUpdmRk3oZ6hgZ2UHwduQlTA8fNINQ2IsBV5adhNbv+yWHLJGb+HrR7VqGl6RMgqmJlxf/Mverx4vZe3rplL3ilvNAIanwvDbuevMzs7qb4vS051nJbJkBhLVuDgjyLz7atbO+Xmi2+iVg13bWP8vRx7T00UmbD2IepeZqm+DrXhwq1Qud0XCad8APcPtobiLVIeVuWBz2fRZa0s8BRdnsElM44l43f1RIWVdMw4rSZNsxGWwfYMDpEWNr6fXWDr54SdYIg= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8af601c3-1b74-4034-f5d2-08d6c7ee1cfb X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:18:02.5704 (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: DM6PR11MB3100 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 Tue Apr 23 13:18: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: 1089384 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="ggMxZiog"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPC722HSz9s3q for ; Tue, 23 Apr 2019 23:18:11 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727901AbfDWNSJ (ORCPT ); Tue, 23 Apr 2019 09:18:09 -0400 Received: from mail-eopbgr680040.outbound.protection.outlook.com ([40.107.68.40]:33414 "EHLO NAM04-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727884AbfDWNSH (ORCPT ); Tue, 23 Apr 2019 09:18: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=Q17WMp8YTl6gMuAbh6OKB/T6Pt0DRvJRBq/aTmJyXS0=; b=ggMxZiogcZNfAQJ5ZX6iuuff0MLCmybcW75RMYHXllmz6yqqi+FfHBiCEd1lc3afjb1t/8BUDIgbvn7lCnu0YIPadnuROBlCsWHu/wnA+f4SB7Uf5ITjdZ4LcGn3ESND1axRBbNLb/lA8xepslWe6oH+37zoOKlkJKtec3P/t7Q= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB2905.namprd11.prod.outlook.com (20.177.216.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Tue, 23 Apr 2019 13:18: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; Tue, 23 Apr 2019 13:18:05 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh Subject: [PATCH v2 net-next 15/16] net: aquantia: fixups on 64bit dma counters Thread-Topic: [PATCH v2 net-next 15/16] net: aquantia: fixups on 64bit dma counters Thread-Index: AQHU+db8tiEr5BVTGE2HS+CfBeOAVQ== Date: Tue, 23 Apr 2019 13:18:05 +0000 Message-ID: <19c76d0ac4b8e188fd8bd7cd8d98673458988395.1556024424.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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: d153c2bd-3757-4472-246e-08d6c7ee1e90 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB2905; x-ms-traffictypediagnostic: DM6PR11MB2905: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(376002)(136003)(39850400004)(346002)(366004)(199004)(189003)(186003)(26005)(8936002)(99286004)(8676002)(97736004)(81166006)(76176011)(81156014)(52116002)(386003)(50226002)(102836004)(6506007)(6916009)(3846002)(6116002)(4326008)(118296001)(2906002)(54906003)(25786009)(36756003)(316002)(6512007)(11346002)(53936002)(107886003)(486006)(478600001)(2616005)(446003)(476003)(7736002)(6436002)(86362001)(14444005)(6486002)(14454004)(66066001)(68736007)(71190400001)(71200400001)(5660300002)(305945005)(256004)(44832011)(66446008)(66556008)(64756008)(66946007)(66476007)(72206003)(73956011); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB2905; 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: Kqwrh+Y0NM6HR/LZ81z33GFlJqGHGV7AQ7rFaJ4nNI29j/vSSeKrwSUqlolDO4Br5X4V7JvLQG2EMtAqS5tPuOlBFKjQYIpsPbLhpztXP558upmxYr5KICqPFJuh4x1MJ4ULL4MkzesbLBCp1ALtk3H16fW7vnJsAV5QhqN5Ar7NaMq408D+3HS5ABlf3t+n7N5fg5gIyxfQ7xUalN/JzdU6wNvrj0ljY9+693IIiDOCvjPx9+g1neWwlGPgyLSwypZ6zpDYYrppoNhAemIB0e+Bq0PTQCYC/w54v2puiBnDZmrGZh+/Oi6HJqxgS627hi87DwFHDitAarZYJm0eGUZCafElxNdYZ57HVtnxULxrC7gdp09LUJ0FqSZbxTdzttKVVGOOSQZ0ru8JPVOOCC3b+9BhgluNUZlqj/V4eIE= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: d153c2bd-3757-4472-246e-08d6c7ee1e90 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:18:05.0812 (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: DM6PR11MB2905 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 35df424e3af3..4063746a8859 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 Tue Apr 23 13:18: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: 1089385 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="VPRy/eZM"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44pPC81nt1z9sNt for ; Tue, 23 Apr 2019 23:18:12 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727906AbfDWNSL (ORCPT ); Tue, 23 Apr 2019 09:18:11 -0400 Received: from mail-eopbgr680043.outbound.protection.outlook.com ([40.107.68.43]:47171 "EHLO NAM04-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727900AbfDWNSK (ORCPT ); Tue, 23 Apr 2019 09:18:10 -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=VPRy/eZMr2AkQoISlY74vuA5CzbyJPhPpwsG/t+mmU3xNC2UXak8jhYQ9fAEQWaFaZ0le2Y1NiTqb8/GHAsiIAXhQTuUjaEJ42ZLWoGY//mazHkTK3pwoUXIXE5LYf7kUc7QSihvuVQQxy0h0LNx8/men1AnsuLeoUSiE/uX0S8= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB2905.namprd11.prod.outlook.com (20.177.216.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.12; Tue, 23 Apr 2019 13:18: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; Tue, 23 Apr 2019 13:18:07 +0000 From: Igor Russkikh To: "David S . Miller" CC: "netdev@vger.kernel.org" , Nikita Danilov , Dmitry Bogdanov , Igor Russkikh , Nikita Danilov Subject: [PATCH v2 net-next 16/16] net: aquantia: remove outdated device ids Thread-Topic: [PATCH v2 net-next 16/16] net: aquantia: remove outdated device ids Thread-Index: AQHU+db9udzw9NYmQEGR8iAreo9EBw== Date: Tue, 23 Apr 2019 13:18:07 +0000 Message-ID: <3c5bd90d99f1bd575ae01051a078f7255dd2de13.1556024424.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: BYAPR01CA0023.prod.exchangelabs.com (2603:10b6:a02:80::36) 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: 2e742054-0aca-45f4-a5d1-08d6c7ee2003 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB2905; x-ms-traffictypediagnostic: DM6PR11MB2905: x-microsoft-antispam-prvs: x-forefront-prvs: 0016DEFF96 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(376002)(136003)(39850400004)(346002)(366004)(199004)(189003)(186003)(26005)(8936002)(99286004)(8676002)(97736004)(81166006)(76176011)(81156014)(52116002)(386003)(50226002)(102836004)(6506007)(6916009)(3846002)(6116002)(4326008)(118296001)(2906002)(54906003)(25786009)(36756003)(316002)(6512007)(11346002)(53936002)(107886003)(486006)(478600001)(2616005)(446003)(476003)(7736002)(6436002)(86362001)(6486002)(14454004)(66066001)(68736007)(71190400001)(71200400001)(5660300002)(305945005)(256004)(44832011)(66446008)(66556008)(64756008)(66946007)(66476007)(72206003)(73956011); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB2905; 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: YFj1DZdAoD6upyckoIUNNWkZrcWdw1YBhAtVQ6ZFKh40QNCdO+58gIMtfoHHBFzpLTAZ3eW2pK8dh7J4U2UH2kWG8MAgvN+FZdP94DfInzq1UsjQ8IEeA1DW82pTuGYIdLIEvoIrqoCSXf8crX5nc0xZJzXLmMuQV5V4wypdyCOwWM8zxlQkiToPNnPP07CTGMy9Ju+wijJ1NRLC6AiT+0vz7IiS+/dYVpEkzPddIzkDHP0DMFKHxMwlTABucDHjjvPJptuYIz7tF1E/m1sCvnggcotpDqveVcAiG00BK4/9RGbj4Auoh8afrhY1fT03/8Pmk1VP48zXB+jUZMcn41l+D10U057+Z4BO0jiUc2mBhJCgYLAlnpZXCbnImK6dbRtwXx5FZl3G2e2JLL40OUZWFIFF7/vhkJqW5OId9U8= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2e742054-0aca-45f4-a5d1-08d6c7ee2003 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2019 13:18:07.6070 (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: DM6PR11MB2905 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 --- 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