From patchwork Sun Jan 26 09:02:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229345 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=O3WYjE1H; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856P55gQkz9sRd for ; Sun, 26 Jan 2020 20:03:37 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726382AbgAZJD1 (ORCPT ); Sun, 26 Jan 2020 04:03:27 -0500 Received: from mail-pg1-f195.google.com ([209.85.215.195]:42316 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726173AbgAZJD1 (ORCPT ); Sun, 26 Jan 2020 04:03:27 -0500 Received: by mail-pg1-f195.google.com with SMTP id s64so3574181pgb.9 for ; Sun, 26 Jan 2020 01:03:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=78gUMQZNPVS/+qczHXdqil56Xfsy528oj63pBzGO5to=; b=O3WYjE1HroPMzz5WluC5k6bcwX03/sujcOh7ZNwKpUatZEuODwtGKuQnAvVKuRLOq9 kXrBSNkKcBXo3FvoY4N2Qwo028zw61QgobP1EpTkPEI7GWveG6KR8i1aTLv0utBurfl2 vMbD+Fmh8ULyd3wwybcQ7hto9QMDM98DBF28w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=78gUMQZNPVS/+qczHXdqil56Xfsy528oj63pBzGO5to=; b=K/aEZScbZW92nMjsvIO/MWaAPaGFdno45bD5f9+MBD1KtJsGHam1qZca1R+sP+tSDs GqOCFMNHT3kNqQ4xOeu1uYnyhSnhOaaXhJhqPgzQY/rAwUFL0OW4AEm3mDMn+r+L5Rhr 8lilogAo/Vu/QuJ/wWJFUriH6qoEmJJllLEIj8MSBR0+mbHxP6HlqQ5uUXseKNgP5oPj MnQNFLkcVgHrufu0YC0rd7Dt4WzOQVZv2bI0/mHMZFWx7Ge4XV1yII4p4TjSd2p9zXUp ZMG++fl29xPSGThrEH+JtyxH9ImF7WPjmm7Dc39+w7FLhCiCyt2L0fvjv2GhjuUO6eCy 1rzQ== X-Gm-Message-State: APjAAAUgl2XwknMmtI6/+Husvjj7/XHybxi+8L9o4UU2ctI9FEry9RHq IsOZBLg56qnTDHgCWZXmZbl5vlwM258= X-Google-Smtp-Source: APXvYqyxsWhk4b9QTL5trKVJVJ50ZcDgXwvYAr9rvzCUEY4L7kB13bHndHg6yyVce60o0HwRWCGssQ== X-Received: by 2002:a63:4a50:: with SMTP id j16mr13813377pgl.323.1580029406146; Sun, 26 Jan 2020 01:03:26 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:25 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Sriharsha Basavapatna Subject: [PATCH net-next 01/16] bnxt_en: Support ingress rate limiting with TC-offload. Date: Sun, 26 Jan 2020 04:02:55 -0500 Message-Id: <1580029390-32760-2-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Sriharsha Basavapatna This patch enables offloading of ingress rate limiting TC-action on a VF. The driver processes "cls_matchall" filter callbacks to add and remove ingress rate limiting actions. The driver parses police action parameter and sends the command to FW to configure rate limiting for the VF. For example, to configure rate limiting offload on a VF using OVS, use the below command on the corresponding VF-rep port. The example below configures min and max tx rates of 200 and 600 Mbps. # ovs-vsctl set interface bnxt0_pf0vf0 \ ingress_policing_rate=600000 ingress_policing_burst=200000 Signed-off-by: Sriharsha Basavapatna Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 1 + drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c | 90 +++++++++++++++++++++++++++ drivers/net/ethernet/broadcom/bnxt/bnxt_tc.h | 3 + drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c | 2 + 4 files changed, 96 insertions(+) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h index f143354..534bc9e 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h @@ -1069,6 +1069,7 @@ struct bnxt_vf_info { u32 max_tx_rate; void *hwrm_cmd_req_addr; dma_addr_t hwrm_cmd_req_dma_addr; + unsigned long police_id; }; #endif diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c index 0cc6ec5..2dfb650 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -1983,6 +1984,95 @@ static int bnxt_tc_indr_block_event(struct notifier_block *nb, return NOTIFY_DONE; } +static inline int bnxt_tc_find_vf_by_fid(struct bnxt *bp, u16 fid) +{ + int num_vfs = pci_num_vf(bp->pdev); + int i; + + for (i = 0; i < num_vfs; i++) { + if (bp->pf.vf[i].fw_fid == fid) + break; + } + if (i >= num_vfs) + return -EINVAL; + return i; +} + +static int bnxt_tc_del_matchall(struct bnxt *bp, u16 src_fid, + struct tc_cls_matchall_offload *matchall_cmd) +{ + int vf_idx; + + vf_idx = bnxt_tc_find_vf_by_fid(bp, src_fid); + if (vf_idx < 0) + return vf_idx; + + if (bp->pf.vf[vf_idx].police_id != matchall_cmd->cookie) + return -ENOENT; + + bnxt_set_vf_bw(bp->dev, vf_idx, 0, 0); + bp->pf.vf[vf_idx].police_id = 0; + return 0; +} + +static int bnxt_tc_add_matchall(struct bnxt *bp, u16 src_fid, + struct tc_cls_matchall_offload *matchall_cmd) +{ + struct flow_action_entry *action; + int vf_idx; + s64 burst; + u64 rate; + int rc; + + vf_idx = bnxt_tc_find_vf_by_fid(bp, src_fid); + if (vf_idx < 0) + return vf_idx; + + action = &matchall_cmd->rule->action.entries[0]; + if (action->id != FLOW_ACTION_POLICE) { + netdev_err(bp->dev, "%s: Unsupported matchall action: %d", + __func__, action->id); + return -EOPNOTSUPP; + } + if (bp->pf.vf[vf_idx].police_id && bp->pf.vf[vf_idx].police_id != + matchall_cmd->cookie) { + netdev_err(bp->dev, + "%s: Policer is already configured for VF: %d", + __func__, vf_idx); + return -EEXIST; + } + + rate = (u32)div_u64(action->police.rate_bytes_ps, 1024 * 1000) * 8; + burst = (u32)div_u64(action->police.rate_bytes_ps * + PSCHED_NS2TICKS(action->police.burst), + PSCHED_TICKS_PER_SEC); + burst = (u32)PSCHED_TICKS2NS(burst) / (1 << 20); + + rc = bnxt_set_vf_bw(bp->dev, vf_idx, burst, rate); + if (rc) { + netdev_err(bp->dev, + "Error: %s: VF: %d rate: %llu burst: %llu rc: %d", + __func__, vf_idx, rate, burst, rc); + return rc; + } + + bp->pf.vf[vf_idx].police_id = matchall_cmd->cookie; + return 0; +} + +int bnxt_tc_setup_matchall(struct bnxt *bp, u16 src_fid, + struct tc_cls_matchall_offload *cls_matchall) +{ + switch (cls_matchall->command) { + case TC_CLSMATCHALL_REPLACE: + return bnxt_tc_add_matchall(bp, src_fid, cls_matchall); + case TC_CLSMATCHALL_DESTROY: + return bnxt_tc_del_matchall(bp, src_fid, cls_matchall); + default: + return -EOPNOTSUPP; + } +} + static const struct rhashtable_params bnxt_tc_flow_ht_params = { .head_offset = offsetof(struct bnxt_tc_flow_node, node), .key_offset = offsetof(struct bnxt_tc_flow_node, cookie), diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.h b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.h index 10c62b0..963788e 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_tc.h @@ -220,6 +220,9 @@ int bnxt_tc_setup_flower(struct bnxt *bp, u16 src_fid, int bnxt_init_tc(struct bnxt *bp); void bnxt_shutdown_tc(struct bnxt *bp); void bnxt_tc_flow_stats_work(struct bnxt *bp); +int bnxt_tc_setup_matchall(struct bnxt *bp, u16 src_fid, + struct tc_cls_matchall_offload *cls_matchall); + static inline bool bnxt_tc_flower_enabled(struct bnxt *bp) { diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c index b010b34..b9d3dae 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c @@ -156,6 +156,8 @@ static int bnxt_vf_rep_setup_tc_block_cb(enum tc_setup_type type, switch (type) { case TC_SETUP_CLSFLOWER: return bnxt_tc_setup_flower(bp, vf_fid, type_data); + case TC_SETUP_CLSMATCHALL: + return bnxt_tc_setup_matchall(bp, vf_fid, type_data); default: return -EOPNOTSUPP; } From patchwork Sun Jan 26 09:02:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229346 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=Q42pc62y; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856P61wSbz9sRf for ; Sun, 26 Jan 2020 20:03:38 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726518AbgAZJD3 (ORCPT ); Sun, 26 Jan 2020 04:03:29 -0500 Received: from mail-pj1-f65.google.com ([209.85.216.65]:35129 "EHLO mail-pj1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726173AbgAZJD2 (ORCPT ); Sun, 26 Jan 2020 04:03:28 -0500 Received: by mail-pj1-f65.google.com with SMTP id q39so1857236pjc.0 for ; Sun, 26 Jan 2020 01:03:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=swMX3ZhvJus2lpAmQSbywZz47exFvO5e1kSg0QE7pdo=; b=Q42pc62yuShvaOj4JrmJO6xIK5FtbVA03dwuvGSJLLsLGtyMDJFcZOKbAz88edczbH eGmHDyf3XOnYBtlqZhBCTinaG2druxP6NJBOSEj5WD1pVTVHzHqAjjxwHD52zm90w8UK 7giEBQYsUVo5RNCpz//ufbYE2sUqmhSdKcF3s= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=swMX3ZhvJus2lpAmQSbywZz47exFvO5e1kSg0QE7pdo=; b=SXx9G4nQJeCxcCMZo/mqfRTn2nEiuq3o9kK7dLCW0Dd4TnMyTZCAUKpnEZc7EuIUyE U2Gahe9rVr4ABr6hmDDGKmG4Gx/CQAhaVAEz0ZGc2F418jZaeadYV44+QWR0OhAi7Gxu 5TQOI3vH9Vr6NCA30TP3qDX9EDklN7Tln9mFYsil3q+N5qMZeJheVLb254vXqMyRFLcG X9uK8ShorH0lvWjDC4ltD0podvgkoMOHmQP/ENIN4xjR6bNCnrFmSd05sZLH++1ncWXo 7NG4EGj7tYMTzDjoK2NY3+LTw36EsY9wPvSdxwPv1yyxEVSLT6A6/wQY8d44TqCWRTJi I3Lg== X-Gm-Message-State: APjAAAWGzGaf251Ooo8rBGG7k3vvnRNPkSZS6hKnHHyQO8rtn127HaWW j0VzLR4LSoccduqmMg9ZPAxrSw== X-Google-Smtp-Source: APXvYqxmvJd+Kr1HsrM8BZkZgcMGsRM5vMUX84uno+u5h7EMftrYNSMkJePucbCY8Hv/MmqJiORfPQ== X-Received: by 2002:a17:90a:3502:: with SMTP id q2mr8701185pjb.46.1580029408046; Sun, 26 Jan 2020 01:03:28 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:27 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org Subject: [PATCH net-next 02/16] bnxt_en: Improve link up detection. Date: Sun, 26 Jan 2020 04:02:56 -0500 Message-Id: <1580029390-32760-3-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In bnxt_update_phy_setting(), ethtool_get_link_ksettings() and bnxt_disable_an_for_lpbk(), we inconsistently use netif_carrier_ok() to determine link. Instead, we should use bp->link_info.link_up which has the true link state. The netif_carrier state may be off during self-test and while the device is being reset and may not always reflect the true link state. By always using bp->link_info.link_up, the code is now more consistent and more correct. Some unnecessary link toggles are now prevented with this patch. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 198c69dc..4b6f746 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -9064,7 +9064,7 @@ static int bnxt_update_phy_setting(struct bnxt *bp) /* The last close may have shutdown the link, so need to call * PHY_CFG to bring it back up. */ - if (!netif_carrier_ok(bp->dev)) + if (!bp->link_info.link_up) update_link = true; if (!bnxt_eee_config_ok(bp)) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c index 08d56ec..6171fa8 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c @@ -1462,15 +1462,15 @@ static int bnxt_get_link_ksettings(struct net_device *dev, ethtool_link_ksettings_add_link_mode(lk_ksettings, advertising, Autoneg); base->autoneg = AUTONEG_ENABLE; - if (link_info->phy_link_status == BNXT_LINK_LINK) + base->duplex = DUPLEX_UNKNOWN; + if (link_info->phy_link_status == BNXT_LINK_LINK) { bnxt_fw_to_ethtool_lp_adv(link_info, lk_ksettings); + if (link_info->duplex & BNXT_LINK_DUPLEX_FULL) + base->duplex = DUPLEX_FULL; + else + base->duplex = DUPLEX_HALF; + } ethtool_speed = bnxt_fw_to_ethtool_speed(link_info->link_speed); - if (!netif_carrier_ok(dev)) - base->duplex = DUPLEX_UNKNOWN; - else if (link_info->duplex & BNXT_LINK_DUPLEX_FULL) - base->duplex = DUPLEX_FULL; - else - base->duplex = DUPLEX_HALF; } else { base->autoneg = AUTONEG_DISABLE; ethtool_speed = @@ -2707,7 +2707,7 @@ static int bnxt_disable_an_for_lpbk(struct bnxt *bp, return rc; fw_speed = PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_1GB; - if (netif_carrier_ok(bp->dev)) + if (bp->link_info.link_up) fw_speed = bp->link_info.link_speed; else if (fw_advertising & BNXT_LINK_SPEED_MSK_10GB) fw_speed = PORT_PHY_CFG_REQ_FORCE_LINK_SPEED_10GB; From patchwork Sun Jan 26 09:02:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229347 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=URC+OFPJ; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856P64sCcz9sRh for ; Sun, 26 Jan 2020 20:03:38 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726612AbgAZJDb (ORCPT ); Sun, 26 Jan 2020 04:03:31 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:43270 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726173AbgAZJDa (ORCPT ); Sun, 26 Jan 2020 04:03:30 -0500 Received: by mail-pl1-f196.google.com with SMTP id p23so2620403plq.10 for ; Sun, 26 Jan 2020 01:03:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=d+pdlhH3HGuHqtnhsjcC54uu2GGuzCxFPbPH3vA9Fzs=; b=URC+OFPJ9O6kPcbl4kfxnPtgG1GRsKUL+KQ87d1XF5z3dl1rcBTJbkNS4zViQj39bz bZ9pUihDlcFHdvdh1bEzCGR4drQBdEjhF5q/48QHdLQD3q91ZhbcSjyej5cOyg8XCmM2 YMLGdomy38cCuMxxnU8nrkXwKGfn4EOyWEjTU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=d+pdlhH3HGuHqtnhsjcC54uu2GGuzCxFPbPH3vA9Fzs=; b=Z3ib46bJ53u1AEZY9gWnUKtHEpbBN+beXAqtxtIPhl1c9tMjYBzKRMSPL0Nf/SgLaW OTcWSu9I8+q+E+VcYGRHVrsJUYLgSMR3dfLdyJFF5x9FYDFaR/5GmehOOI0bYDWcy+Eb yZHjEE0S7+6pUpkzKkuA41HPnvzId01snBWvqtnpl+E3DaQqOuWHi1jYUBCOjLoWSP+9 tRcirZZYCJ0lweq3U9fDOWfGu65Jlkm4bZhIFG6DAl+33Q1kpDVYnOgm+2nPxMdMtIYa Is9erTTW1jUiM2aJPBJerzao4QUHxwVbBgsaILQPSb0mhbbQ9qVijrFpTDwfqceggIfo qNfg== X-Gm-Message-State: APjAAAWT/EtZhDi0ZWtxaG6ZR6mjiwbZAOuP/mQjwQUbsaCwXvdcsbtl 1sQeT9RZWPMWVO6LZDbcDzRliA== X-Google-Smtp-Source: APXvYqx/g44SmM+BbZTlL639cY4M9B5sqDFhEYu+u6/Gkg3ZkEmCtIo+UvOuxMPZs9sSfmLcYS5iew== X-Received: by 2002:a17:902:d216:: with SMTP id t22mr12193939ply.150.1580029409985; Sun, 26 Jan 2020 01:03:29 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:29 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org Subject: [PATCH net-next 03/16] bnxt_en: Improve bnxt_probe_phy(). Date: Sun, 26 Jan 2020 04:02:57 -0500 Message-Id: <1580029390-32760-4-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If the 2nd parameter fw_dflt is not set, we are calling bnxt_probe_phy() after the firmware has reset. There is no need to query the current PHY settings from firmware as these settings may be different from the ethtool settings that the driver will re-establish later. So return earlier in bnxt_probe_phy() to save one firmware call. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 4b6f746..4d790bc 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -11471,6 +11471,9 @@ static int bnxt_probe_phy(struct bnxt *bp, bool fw_dflt) rc); return rc; } + if (!fw_dflt) + return 0; + rc = bnxt_update_link(bp, false); if (rc) { netdev_err(bp->dev, "Probe phy can't update link (rc: %x)\n", @@ -11484,9 +11487,6 @@ static int bnxt_probe_phy(struct bnxt *bp, bool fw_dflt) if (link_info->auto_link_speeds && !link_info->support_auto_speeds) link_info->support_auto_speeds = link_info->support_speeds; - if (!fw_dflt) - return 0; - bnxt_init_ethtool_link_settings(bp); return 0; } From patchwork Sun Jan 26 09:02:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229348 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=bJwhsxQ+; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856P70n5Tz9sPW for ; Sun, 26 Jan 2020 20:03:39 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726771AbgAZJDc (ORCPT ); Sun, 26 Jan 2020 04:03:32 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:33383 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726173AbgAZJDc (ORCPT ); Sun, 26 Jan 2020 04:03:32 -0500 Received: by mail-pf1-f196.google.com with SMTP id n7so3408604pfn.0 for ; Sun, 26 Jan 2020 01:03:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=XTZ9jYmARcxcUqNSgJ92mqSuSKing5nfHNpX2lOwrxo=; b=bJwhsxQ+i9tpiNvmO+IebuW59UOMBmPRZDa2xUT8lFk3fYfcduLbX6LbNsFmRQeg/O 7lDqj40Eg4HALF8dS/R2DxXo/RkarLEgZCbRR/QZ3pz1PiWrAT2A+y8wMaZVUAAFxxlT GGZzOYbFkqHXgOaUauluCSUoLDlGOXtvg0Znk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=XTZ9jYmARcxcUqNSgJ92mqSuSKing5nfHNpX2lOwrxo=; b=uF70GZAekwDHbZjAXn5xTT6/JnG8Cbpt8ydydYwXxvz7JHgI4cdyEEebg+O1gpHmvx 5VTmr4e90o4djCz50SXAFRKEYSahCaZSzMZv/+MpfFDjXVE/WfJIeR+aPNLhYCiwRftp L4kp4g8pnwG3gQl2Y8RQxu6ebN/fEkKBGwgFocOSRHtwLNjICRKjljrHeayAONqiD7Ra R5Hz8sshRvFZyRvnQLIRAit2sEEIdJhEw4K0JiDp+S9zWA8kcJaN6rJfFr2NJXPIDYOy 9dx190oCc6RGpZXGRkt8Gn8scpB4hI627XtiOnAjZFIQEyHfFXqKQSQDT7ho1SZmiP3o ERbg== X-Gm-Message-State: APjAAAWYR6TDm9kbdRmljLhy7s4vdLZl3AQs3cTuuhCRy3zobhwBw9uX Fq3q7QoakoGwyY148n8RymVluA== X-Google-Smtp-Source: APXvYqx6A/RdA852YxkGOD+jYpjsbRLpJJ1T12u00nIx2kWrvAQSoVOZNCmaj6IelxQ9rX2gX4bzpA== X-Received: by 2002:a62:b418:: with SMTP id h24mr11697171pfn.192.1580029411950; Sun, 26 Jan 2020 01:03:31 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:31 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org Subject: [PATCH net-next 04/16] bnxt_en: Remove the setting of dev_port. Date: Sun, 26 Jan 2020 04:02:58 -0500 Message-Id: <1580029390-32760-5-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The dev_port is meant to distinguish the network ports belonging to the same PCI function. Our devices only have one network port associated with each PCI function and so we should not set it for correctness. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 4d790bc..6c0c926 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -6998,7 +6998,6 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp) pf->fw_fid = le16_to_cpu(resp->fid); pf->port_id = le16_to_cpu(resp->port_id); - bp->dev->dev_port = pf->port_id; memcpy(pf->mac_addr, resp->mac_address, ETH_ALEN); pf->first_vf_id = le16_to_cpu(resp->first_vf_id); pf->max_vfs = le16_to_cpu(resp->max_vfs); From patchwork Sun Jan 26 09:02:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229349 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=VCm+ewMN; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856P73swkz9sRd for ; Sun, 26 Jan 2020 20:03:39 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728292AbgAZJDf (ORCPT ); Sun, 26 Jan 2020 04:03:35 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:39243 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726173AbgAZJDe (ORCPT ); Sun, 26 Jan 2020 04:03:34 -0500 Received: by mail-pl1-f196.google.com with SMTP id g6so2624537plp.6 for ; Sun, 26 Jan 2020 01:03:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=HDJehLxTt54CeUJRFPv2azzI91Oqm3K+fQ7d34Qz9l8=; b=VCm+ewMNI+P0aucvPHKnvkdoOs4WeW4uMxgS5y01ssZq79tvCplPuImiHJ3yojl91l vqp34TA369lrrMUMniRDVXrHbH+SNdEYR0/xu8pO+1ABXmUz7+Z4JqbbsFDNhk2WX6g3 lu6fFSxAvnMOa51v6Ad4Q6qjGLBtU6LzyqNVk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=HDJehLxTt54CeUJRFPv2azzI91Oqm3K+fQ7d34Qz9l8=; b=FhBsw5ktvXJ+Skar+l03o43+vKRQIzDdWU1qTiZ1o+kJ4CSZPI0fHOCbQlBMtIuQ4d GHJNp9vfDRcurCh4tGizJ+kGA61+kH5bFp3uWBQLSr2E2HFtmuqtnLNHFRB9K4qKcnKk A1XnKto1f1c23O4YvLA3yuwiqwmAnn6L9qlH/5KxFnnz/BjGRVT3yydL+XZMfw6tvVZe usjp3yOPy2XflstYcv0nM407P6/3Beh7q08xQrWed5VISHq8/NetBHBWP+fgDWHizAzF 1K3JyVMGg/qGpUmYOzK3tZ9hLB6f3rlmMHImXYUttQ7BAhjwswW6cFecbsSbtd2lM8dk ofkQ== X-Gm-Message-State: APjAAAVcbAQKVtj/k+/TbrdZ03OWyxz1zv5k5g5sG98rECHQ267KbXXv IFW1uh1+Fb4I/HSUZKPxekv5+PeF4HM= X-Google-Smtp-Source: APXvYqywa7SP8h2aKP7WQ+2O9s4NAvl0ewiZuqh8ndXGdWed6Pi3uGfQCQJLZHlt0TUynifjCXScng== X-Received: by 2002:a17:90a:db48:: with SMTP id u8mr8546008pjx.54.1580029413830; Sun, 26 Jan 2020 01:03:33 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:33 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org Subject: [PATCH net-next 05/16] bnxt_en: Support UDP RSS hashing on 575XX chips. Date: Sun, 26 Jan 2020 04:02:59 -0500 Message-Id: <1580029390-32760-6-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 575XX (P5) chips have the same UDP RSS hashing capability as P4 chips, so we can enable it on P5 chips. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 6c0c926..fb4a65f 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -10568,7 +10568,7 @@ static void bnxt_set_dflt_rss_hash_type(struct bnxt *bp) VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV4 | VNIC_RSS_CFG_REQ_HASH_TYPE_IPV6 | VNIC_RSS_CFG_REQ_HASH_TYPE_TCP_IPV6; - if (BNXT_CHIP_P4(bp) && bp->hwrm_spec_code >= 0x10501) { + if (BNXT_CHIP_P4_PLUS(bp) && bp->hwrm_spec_code >= 0x10501) { bp->flags |= BNXT_FLAG_UDP_RSS_CAP; bp->rss_hash_cfg |= VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV4 | VNIC_RSS_CFG_REQ_HASH_TYPE_UDP_IPV6; From patchwork Sun Jan 26 09:03:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229350 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=IvEva/RY; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856P93C93z9sPW for ; Sun, 26 Jan 2020 20:03:41 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729012AbgAZJDi (ORCPT ); Sun, 26 Jan 2020 04:03:38 -0500 Received: from mail-pj1-f67.google.com ([209.85.216.67]:55971 "EHLO mail-pj1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726173AbgAZJDg (ORCPT ); Sun, 26 Jan 2020 04:03:36 -0500 Received: by mail-pj1-f67.google.com with SMTP id d5so1749539pjz.5 for ; Sun, 26 Jan 2020 01:03:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=th/aVVhQNvMbxhvlv5IN61IX1K2lXZ94hFaZRwDbL08=; b=IvEva/RYisyXJ6/6eXDk+k/BKe2jcNCQfrKZP6KOOsC++BnawenfYGbscQ7Z/m1/uU tDv8dPJisNyGlu88WOZeN3JoT5RrDmBiRc2hCPkM8j4SEmEPhOHaaoBb4uzGpRAvxiH9 Yk2brsKVIKh1tNxeZjQQV/cj4qOWYgOCVIgII= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=th/aVVhQNvMbxhvlv5IN61IX1K2lXZ94hFaZRwDbL08=; b=eiG6pGoKYORSfBbcFaQyIZ679By/JOrW8UMHFowv4ma3WKfP0aSXkWOJHX6USAxrfa KiWCt0kMFXS40m4uhcl2wxGZPHUcg0y7yzjXOFJmtRlKq7FmIAGV4uDOh5ApZNLb/Y1e VqMcu7gxZjR+7FtPYDDgnWUvY/HMsqi9KVEqUaPjKZfOJxP5DnBGarE0YbRJ0GAiGmiA XVUcxVCgCsJNaMivWyuWcPvQ+3C4PYkQhn9x36eR/HWTj3Bo9IJcAm3a7LGbsJgL/4Cr eJaqpUcmaBKz+9rNjTREKBvCVz6Lo751VqiTAhAmkDswZ3+iMDiujLn+O2dvjocj3oLE Oebw== X-Gm-Message-State: APjAAAXSWJGLKrMD3v/Ui668AMUBLRM4fG5yl42RUpZvU+dAj+wwyyP+ eOQR5je3TwrWBm6hcmWAiKnQsQ== X-Google-Smtp-Source: APXvYqxWGd4T7zwacynOkdAv/BaleQNsxNtGtXWlycWO5BjixI/mgK7VYz+Ze+hRKbJEFzyjaKZAvQ== X-Received: by 2002:a17:902:ba97:: with SMTP id k23mr11420855pls.19.1580029415727; Sun, 26 Jan 2020 01:03:35 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:35 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org Subject: [PATCH net-next 06/16] bnxt_en: Do not accept fragments for aRFS flow steering. Date: Sun, 26 Jan 2020 04:03:00 -0500 Message-Id: <1580029390-32760-7-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In bnxt_rx_flow_steer(), if the dissected packet is a fragment, do not proceed to create the ntuple filter and return error instead. Otherwise we would create a filter with 0 source and destination ports because the dissected ports would not be available for fragments. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index fb4a65f..fb67e66 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -11100,6 +11100,7 @@ static int bnxt_rx_flow_steer(struct net_device *dev, const struct sk_buff *skb, struct ethhdr *eth = (struct ethhdr *)skb_mac_header(skb); int rc = 0, idx, bit_id, l2_idx = 0; struct hlist_head *head; + u32 flags; if (!ether_addr_equal(dev->dev_addr, eth->h_dest)) { struct bnxt_vnic_info *vnic = &bp->vnic_info[0]; @@ -11139,8 +11140,9 @@ static int bnxt_rx_flow_steer(struct net_device *dev, const struct sk_buff *skb, rc = -EPROTONOSUPPORT; goto err_free; } - if ((fkeys->control.flags & FLOW_DIS_ENCAPSULATION) && - bp->hwrm_spec_code < 0x10601) { + flags = fkeys->control.flags; + if (((flags & FLOW_DIS_ENCAPSULATION) && + bp->hwrm_spec_code < 0x10601) || (flags & FLOW_DIS_IS_FRAGMENT)) { rc = -EPROTONOSUPPORT; goto err_free; } From patchwork Sun Jan 26 09:03:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229351 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=ho2SndT6; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856PB6t20z9sPW for ; Sun, 26 Jan 2020 20:03:42 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729107AbgAZJDl (ORCPT ); Sun, 26 Jan 2020 04:03:41 -0500 Received: from mail-pl1-f194.google.com ([209.85.214.194]:40136 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729014AbgAZJDi (ORCPT ); Sun, 26 Jan 2020 04:03:38 -0500 Received: by mail-pl1-f194.google.com with SMTP id p12so2204853plr.7 for ; Sun, 26 Jan 2020 01:03:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=AE4i9DBZawLRA4+hTy9ux3mggfiCFx9jNJrS3dBXSuA=; b=ho2SndT6yYgSlgvDerJro3nKwSHYX3HHRzxEMbjevi+PLYiC/G1rXxDOyGIOUreO9N IkVfE/Fg9uoyWiLNtD9wn61k7BWdiNKYEfxErO1+6ACKHeS84UzgDm8fkaSXdMHfCAsZ FCCbfgs9pgh2D9kRQo7emQHDZn2OaKtX0taxw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=AE4i9DBZawLRA4+hTy9ux3mggfiCFx9jNJrS3dBXSuA=; b=U1SgAcvHxcvAPNIgrl7DQgCDnlqmxA+XQ3vieAHav68cbsc8xOKlVV6KzYc/CGuwlA oMcqDx1JMkzoTMMpwx10PdHSM7/hwr9UqkIhbSGbIqNY9RfActyVUPjK09uI6KI4bYNp rwVGidmkjIXJ6lGyfa6ZFIM19ETh0IVrlXoVu9AfkdNquIuaOL5NqHs7rmRf+g03UERA 3P+qO6Tg4o4O1xzTIlZ4hpl0W6D69rlOutt+PTSlOcscoxh6Hqn5eksDrtb4b64HsM05 Gkg64G49xk4i+goCxDrZBJcLmN++r6q+/RqeaJbE/ZVZ4E1ozQd8JtE2sf6Vic8ydSJ8 xFKA== X-Gm-Message-State: APjAAAUvtAOiprq2wI65DfO/NVxY6BHxDgk7uMVW1yYpufL73HW6nQO/ 6hGqt33ayV3Bromgzj1T6uvb3w== X-Google-Smtp-Source: APXvYqxU10DPEzFU+fq7t1vghK01F+AkXhYDj3m0ASS5bATcQOOpT81xGRAghUgE7ao8emgGGLJFdA== X-Received: by 2002:a17:90a:7781:: with SMTP id v1mr8652133pjk.108.1580029418008; Sun, 26 Jan 2020 01:03:38 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:37 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Pavan Chebbi Subject: [PATCH net-next 07/16] bnxt_en: Periodically check and remove aged-out ntuple filters Date: Sun, 26 Jan 2020 04:03:01 -0500 Message-Id: <1580029390-32760-8-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Pavan Chebbi Currently the only time we check and remove expired filters is when we are inserting new filters. Improving the aRFS expiry handling by adding code to do the above work periodically. Signed-off-by: Pavan Chebbi Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index fb67e66..7d53672 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -10040,6 +10040,13 @@ static void bnxt_timer(struct timer_list *t) bnxt_queue_sp_work(bp); } +#ifdef CONFIG_RFS_ACCEL + if ((bp->flags & BNXT_FLAG_RFS) && bp->ntp_fltr_count) { + set_bit(BNXT_RX_NTP_FLTR_SP_EVENT, &bp->sp_event); + bnxt_queue_sp_work(bp); + } +#endif /*CONFIG_RFS_ACCEL*/ + if (bp->link_info.phy_retry) { if (time_after(jiffies, bp->link_info.phy_retry_expires)) { bp->link_info.phy_retry = false; From patchwork Sun Jan 26 09:03:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229352 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=KjHkFmFz; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856PC67glz9sPW for ; Sun, 26 Jan 2020 20:03:43 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729154AbgAZJDm (ORCPT ); Sun, 26 Jan 2020 04:03:42 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:41797 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729066AbgAZJDk (ORCPT ); Sun, 26 Jan 2020 04:03:40 -0500 Received: by mail-pf1-f196.google.com with SMTP id w62so3423534pfw.8 for ; Sun, 26 Jan 2020 01:03:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=BsU5eUAUtDx980IIueh5IHnsjobmFAjuDQZA4jiYaeQ=; b=KjHkFmFzVDzsnfHXm2Ch0tuKcqxUXmPrnSZs1NFgK5JN+6Z4EVJ8VPFWDNNBhsEvEx NhfO1FzjKTAxLTdLPnXKBTcgtHjTZ4AcFrd4p2dn/oGmC/w/Wy1eCEpzdT6pICui1wA7 R1S5Gbe+3sFz2XwZWTPwSfhHykamaXC1YDr3Y= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=BsU5eUAUtDx980IIueh5IHnsjobmFAjuDQZA4jiYaeQ=; b=a8ZrfB/RaYRoQbDj16BPBqDhi2+djF2Fq2PCpfD2/SEyfL0hzD/KjAyjePJhcSIBQN q0HVsnREXS3Fyin53YPJ5u4m71eNcj1x0bq/G9t1Zu3pkNVDR6uivr6G0gPTtKG/4P4/ KL2KyKJ0jkH16xuiI71NDcQThoyMuSKZRLWewJ3/4TG3TaWuJv0VVX+xzV55AyfK5M9P DetcrWgKWdWTjrHFirIRQAc5V4xHytOk1QUmX1wBi5Dnnceg8SfoBDDqghxvD1JdjP3m RvS1A0WO7ZsAP4sChVSOXgZdBO6f2z2lzA3yZaTMSp4cEcUpnWSekWpaNsSwZaqe62pR F2Pw== X-Gm-Message-State: APjAAAUT5G+jcTv8bDZYXv2ixuu1BSDuTftJu+nkfT3+yVsPo63OAA0d 5WBFT4pJnwIZDKEzEKPFBKaMfAt9Zw8= X-Google-Smtp-Source: APXvYqzQ9HMN0bfpSbq/v8T8kLP/DRy+1QnHyVcamDudfgYBb+xa3xe/uWaH4PsUmyD9TlLRPx9HxQ== X-Received: by 2002:a63:a53:: with SMTP id z19mr13263896pgk.267.1580029419858; Sun, 26 Jan 2020 01:03:39 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:39 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org Subject: [PATCH net-next 08/16] bnxt_en: Disable workaround for lost interrupts on 575XX B0 and newer chips. Date: Sun, 26 Jan 2020 04:03:02 -0500 Message-Id: <1580029390-32760-9-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The hardware bug has been fixed on B0 and newer chips, so disable the workaround on these chips. Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 4 +++- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 7d53672..676f4da 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -7288,6 +7288,7 @@ static int bnxt_hwrm_ver_get(struct bnxt *bp) bp->hwrm_max_ext_req_len = HWRM_MAX_REQ_LEN; bp->chip_num = le16_to_cpu(resp->chip_num); + bp->chip_rev = resp->chip_rev; if (bp->chip_num == CHIP_NUM_58700 && !resp->chip_rev && !resp->chip_metal) bp->flags |= BNXT_FLAG_CHIP_NITRO_A0; @@ -10057,7 +10058,8 @@ static void bnxt_timer(struct timer_list *t) } } - if ((bp->flags & BNXT_FLAG_CHIP_P5) && netif_carrier_ok(dev)) { + if ((bp->flags & BNXT_FLAG_CHIP_P5) && !bp->chip_rev && + netif_carrier_ok(dev)) { set_bit(BNXT_RING_COAL_NOW_SP_EVENT, &bp->sp_event); bnxt_queue_sp_work(bp); } diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h index 534bc9e..cb2b833 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h @@ -1458,6 +1458,8 @@ struct bnxt { #define CHIP_NUM_58804 0xd804 #define CHIP_NUM_58808 0xd808 + u8 chip_rev; + #define BNXT_CHIP_NUM_5730X(chip_num) \ ((chip_num) >= CHIP_NUM_57301 && \ (chip_num) <= CHIP_NUM_57304) From patchwork Sun Jan 26 09:03:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229353 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=ZAlDtK7l; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856PF4Bpcz9sPW for ; Sun, 26 Jan 2020 20:03:45 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729213AbgAZJDo (ORCPT ); Sun, 26 Jan 2020 04:03:44 -0500 Received: from mail-pg1-f194.google.com ([209.85.215.194]:33765 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729133AbgAZJDm (ORCPT ); Sun, 26 Jan 2020 04:03:42 -0500 Received: by mail-pg1-f194.google.com with SMTP id 6so3591879pgk.0 for ; Sun, 26 Jan 2020 01:03:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=VlCCvFWaSKzHzjSHhzAdK/BsulE2V9JYtwdqV/cpcR0=; b=ZAlDtK7lE8kucRA72qvsY7wh7cqxm2NYtJ3YQYKlExbjzI4GasU0O20uDViua0n+Qx fDItMVue/9h8gNs5/iPWEvasryaIXmzN7rEdNT49Y0YtlmbHl+Lw9R+XM4Swp9k3vr8j KtGIEIXXzyLzeTWZ5iBOa2+D4IZW3fpyRyHn8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=VlCCvFWaSKzHzjSHhzAdK/BsulE2V9JYtwdqV/cpcR0=; b=Bb+QvQU9CczKXD6xdpwc9tBXrXrStZBjbHEr0F82YleretLoDWDDpbWlDLIM1lwUqc JkzXddcwNlMjzpOGNp9Y4d2VIhGswmt7cjRkZpJiJgYTjtlPN/0rHZu0si2p16ugJJUU te9Eq+O7AevsbvaN0fw7ga2Jq5XF+O3je8EzxaFO1O/+d7XRv8noP2MBEkuObpJehM8c nIGq8m5RK5oKI8BeAPBe4i+XCqIOiq2lDQxJbQDo7QCyQWXmFhTf2QBeKjNS3YTlD6FU 2oxCzU9um77I/qqdwRCAmmMkEyR0QS3RLa13XbH/2bw28sf76wB9cBKm601dM5LjPFST yVvg== X-Gm-Message-State: APjAAAU6d1N9a40JBGmV9/N6lgooqn0sDfRVFyoi7oVSLxd+GPcpLJDk EhZnKi0LM/+Qw31vt6YCxywT4Q== X-Google-Smtp-Source: APXvYqxdqNb9a5llRHPxbGo9qDo/kKXCuv4q1qDWaA5uoa5YOIEpikzst3A6oXY5xKrMQ5I0OXm0Yg== X-Received: by 2002:a05:6a00:5b:: with SMTP id i27mr11324187pfk.112.1580029421985; Sun, 26 Jan 2020 01:03:41 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:41 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Vasundhara Volam Subject: [PATCH net-next 09/16] bnxt_en: Refactor bnxt_dl_register() Date: Sun, 26 Jan 2020 04:03:03 -0500 Message-Id: <1580029390-32760-10-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Vasundhara Volam Define bnxt_dl_params_register() and bnxt_dl_params_unregister() functions and move params register/unregister code to these newly defined functions. This patch is in preparation to register devlink irrespective of firmware spec. version in the next patch. Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 60 ++++++++++++++--------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c index 0c3d224..9253eed 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c @@ -485,6 +485,38 @@ static const struct devlink_param bnxt_dl_params[] = { static const struct devlink_param bnxt_dl_port_params[] = { }; +static int bnxt_dl_params_register(struct bnxt *bp) +{ + int rc; + + rc = devlink_params_register(bp->dl, bnxt_dl_params, + ARRAY_SIZE(bnxt_dl_params)); + if (rc) { + netdev_warn(bp->dev, "devlink_params_register failed. rc=%d", + rc); + return rc; + } + rc = devlink_port_params_register(&bp->dl_port, bnxt_dl_port_params, + ARRAY_SIZE(bnxt_dl_port_params)); + if (rc) { + netdev_err(bp->dev, "devlink_port_params_register failed"); + devlink_params_unregister(bp->dl, bnxt_dl_params, + ARRAY_SIZE(bnxt_dl_params)); + return rc; + } + devlink_params_publish(bp->dl); + + return 0; +} + +static void bnxt_dl_params_unregister(struct bnxt *bp) +{ + devlink_params_unregister(bp->dl, bnxt_dl_params, + ARRAY_SIZE(bnxt_dl_params)); + devlink_port_params_unregister(&bp->dl_port, bnxt_dl_port_params, + ARRAY_SIZE(bnxt_dl_port_params)); +} + int bnxt_dl_register(struct bnxt *bp) { struct devlink *dl; @@ -520,40 +552,24 @@ int bnxt_dl_register(struct bnxt *bp) if (!BNXT_PF(bp)) return 0; - rc = devlink_params_register(dl, bnxt_dl_params, - ARRAY_SIZE(bnxt_dl_params)); - if (rc) { - netdev_warn(bp->dev, "devlink_params_register failed. rc=%d", - rc); - goto err_dl_unreg; - } - devlink_port_attrs_set(&bp->dl_port, DEVLINK_PORT_FLAVOUR_PHYSICAL, bp->pf.port_id, false, 0, bp->switch_id, sizeof(bp->switch_id)); rc = devlink_port_register(dl, &bp->dl_port, bp->pf.port_id); if (rc) { netdev_err(bp->dev, "devlink_port_register failed"); - goto err_dl_param_unreg; + goto err_dl_unreg; } devlink_port_type_eth_set(&bp->dl_port, bp->dev); - rc = devlink_port_params_register(&bp->dl_port, bnxt_dl_port_params, - ARRAY_SIZE(bnxt_dl_port_params)); - if (rc) { - netdev_err(bp->dev, "devlink_port_params_register failed"); + rc = bnxt_dl_params_register(bp); + if (rc) goto err_dl_port_unreg; - } - - devlink_params_publish(dl); return 0; err_dl_port_unreg: devlink_port_unregister(&bp->dl_port); -err_dl_param_unreg: - devlink_params_unregister(dl, bnxt_dl_params, - ARRAY_SIZE(bnxt_dl_params)); err_dl_unreg: devlink_unregister(dl); err_dl_free: @@ -570,12 +586,8 @@ void bnxt_dl_unregister(struct bnxt *bp) return; if (BNXT_PF(bp)) { - devlink_port_params_unregister(&bp->dl_port, - bnxt_dl_port_params, - ARRAY_SIZE(bnxt_dl_port_params)); + bnxt_dl_params_unregister(bp); devlink_port_unregister(&bp->dl_port); - devlink_params_unregister(dl, bnxt_dl_params, - ARRAY_SIZE(bnxt_dl_params)); } devlink_unregister(dl); devlink_free(dl); From patchwork Sun Jan 26 09:03:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229354 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=F2xQUaC3; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856PH2RJGz9sPW for ; Sun, 26 Jan 2020 20:03:47 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729224AbgAZJDp (ORCPT ); Sun, 26 Jan 2020 04:03:45 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:45688 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729199AbgAZJDo (ORCPT ); Sun, 26 Jan 2020 04:03:44 -0500 Received: by mail-pf1-f196.google.com with SMTP id 2so3413033pfg.12 for ; Sun, 26 Jan 2020 01:03:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=vbQKlghpuXjEUlIa1KsSW2iEIeBU1NJw+JifyZBOcIU=; b=F2xQUaC3Eo89vk2IGlQQ9iles2yM1wPp8eJzDL41rgYO8rOoXWN64GtEC1K/BKsLtj IMAJcKrOti8NIAqfeYykzY08+DtRq7AsCQDHK4PySnVJyuORruZXdIuIiwICxBcKeQ4d By5XWQP3J8rfIpf0k6KdjfPooSgRdT7Beaiec= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=vbQKlghpuXjEUlIa1KsSW2iEIeBU1NJw+JifyZBOcIU=; b=Su2Cy03mPmQI3f+uFAgcl6kW86/ztDc9iBtCOu3L4Xj/l96xhDj8h1qxDPHO8PyRmD 9dmYDVFJeBbUTmt4QG66brS2+RWqOshznjL9OtlgiwJhvrKt4mprVduGCU8aelCz+iaX 2kXJIiIlV7v/X6sBKkNFaMmlCYENQtkmq6SwCQhqhKnDKQxZOhd3fvkvtVZo6wA8C7ar r+dEcGwghMyFMAWqKC8j2FcuAJuTy4YcjXKJPxAdyjuqToEIWoWSeE00vNTda2b8Oiyw nU3c0xT5yYNVlW8JUajrUo++IzBYmxyGNBmBSCpc5gd7qSr8RreocYDmPigT+7YkWx8C W5Ig== X-Gm-Message-State: APjAAAUA0iLDL1XyaQXEZJ5245khzFIgoyuxfVB+FY325+JfU5dN3QLL GYULCZvA/f1iB0Cqv8nhC4JRI3VQbWk= X-Google-Smtp-Source: APXvYqzc4+e7G5C61zmjT48lS/irMbkk86Ca0BmDjw08haFxaploZHvc7s83wdzIo2xi+D6m/QoNkw== X-Received: by 2002:a63:d807:: with SMTP id b7mr14058612pgh.52.1580029424121; Sun, 26 Jan 2020 01:03:44 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:43 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Vasundhara Volam Subject: [PATCH net-next 10/16] bnxt_en: Register devlink irrespective of firmware spec version Date: Sun, 26 Jan 2020 04:03:04 -0500 Message-Id: <1580029390-32760-11-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Vasundhara Volam This will allow to register for devlink port and use port features. Also register params only if firmware spec version is at least 0x10600 which will support reading/setting numbered variables in NVRAM. Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c index 9253eed..a8cdfbdd 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c @@ -489,6 +489,9 @@ static int bnxt_dl_params_register(struct bnxt *bp) { int rc; + if (bp->hwrm_spec_code < 0x10600) + return 0; + rc = devlink_params_register(bp->dl, bnxt_dl_params, ARRAY_SIZE(bnxt_dl_params)); if (rc) { @@ -511,6 +514,9 @@ static int bnxt_dl_params_register(struct bnxt *bp) static void bnxt_dl_params_unregister(struct bnxt *bp) { + if (bp->hwrm_spec_code < 0x10600) + return; + devlink_params_unregister(bp->dl, bnxt_dl_params, ARRAY_SIZE(bnxt_dl_params)); devlink_port_params_unregister(&bp->dl_port, bnxt_dl_port_params, @@ -522,11 +528,6 @@ int bnxt_dl_register(struct bnxt *bp) struct devlink *dl; int rc; - if (bp->hwrm_spec_code < 0x10600) { - netdev_warn(bp->dev, "Firmware does not support NVM params"); - return -ENOTSUPP; - } - if (BNXT_PF(bp)) dl = devlink_alloc(&bnxt_dl_ops, sizeof(struct bnxt_dl)); else From patchwork Sun Jan 26 09:03:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229355 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=HIq/e6k6; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856PK3smpz9sPW for ; Sun, 26 Jan 2020 20:03:49 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729242AbgAZJDs (ORCPT ); Sun, 26 Jan 2020 04:03:48 -0500 Received: from mail-pg1-f193.google.com ([209.85.215.193]:46660 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729199AbgAZJDr (ORCPT ); Sun, 26 Jan 2020 04:03:47 -0500 Received: by mail-pg1-f193.google.com with SMTP id z124so3555537pgb.13 for ; Sun, 26 Jan 2020 01:03:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=t3ltzevlkl9BqbgNXchhp8oFpYeu3ZUTIFGc0Rvwg6c=; b=HIq/e6k6HSdAK7mtT5T3EVE5cWCK4TyrQAyg94zpKK20jCjSdACb4HwVB4ejYDGRRX XNtPZgWPGlz1QFDGKFLYSZTiapQeLeMwWPBfR+QzbCrdAYLnWZpy+/TpuXcJse9Cw9am ZJfxTTFuhLrD9AoETPWkVSXVKRn5DxXtNp3Bs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=t3ltzevlkl9BqbgNXchhp8oFpYeu3ZUTIFGc0Rvwg6c=; b=CaMESknlOH5quQvDP/ULRK+PvNEsvcy8M4UPLqJjANh/ZbXj2lRUcbUjI191w9/slA 0cHfL8cd2VPVbHoW552lbOiMZeaEIP65spK3vhC7eNLSmo/5qdXz6feyDvD462Dv2lei y2HNJVpD+sVa6u6wQ6jllkHSCOdYUYpwG9wopyEbuoy5/7v2kgoOCoS4trpczQjqX4qV VTl+CTQqptHAMvNT/Unb6kVoBa71s4RJoiEhiJ9vmzMzM129IUW6d5Lov6cxcwtDVHZa H9FUMFAiI/80/lS40faZlJdvDeekq7wybLgE2cNwZ5LcrZFnyr1XWjovX72DiyHMAcoi rmPA== X-Gm-Message-State: APjAAAWw8up8NH64reM7AgiruZ70eKFlJbOlGKg5iaZIsd7XX7hlbALF cAETGYMg9snl+nnjoNZvmd0tWw== X-Google-Smtp-Source: APXvYqx0LJnbxUQ+onIm7PSEq/UJQrcdc8q/nY+mcsSusyv7i7r/Y3iKP7U77DXMsaINnnS20O4fUQ== X-Received: by 2002:a63:554c:: with SMTP id f12mr13871745pgm.23.1580029426509; Sun, 26 Jan 2020 01:03:46 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:46 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Vasundhara Volam , Jiri Pirko Subject: [PATCH net-next 11/16] bnxt_en: Move devlink_register before registering netdev Date: Sun, 26 Jan 2020 04:03:05 -0500 Message-Id: <1580029390-32760-12-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Vasundhara Volam Latest kernels get the phys_port_name via devlink, if ndo_get_phys_port_name is not defined. To provide the phys_port_name correctly, register devlink before registering netdev. Also call devlink_port_type_eth_set() after registering netdev as devlink port updates the netdev structure and notifies user. Cc: Jiri Pirko Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 12 ++++++++---- drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 1 - 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 676f4da..8579415 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -11445,9 +11445,9 @@ static void bnxt_remove_one(struct pci_dev *pdev) bnxt_sriov_disable(bp); bnxt_dl_fw_reporters_destroy(bp, true); - bnxt_dl_unregister(bp); pci_disable_pcie_error_reporting(pdev); unregister_netdev(dev); + bnxt_dl_unregister(bp); bnxt_shutdown_tc(bp); bnxt_cancel_sp_work(bp); bp->sp_event = 0; @@ -11917,11 +11917,14 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) bnxt_init_tc(bp); } + bnxt_dl_register(bp); + rc = register_netdev(dev); if (rc) - goto init_err_cleanup_tc; + goto init_err_cleanup; - bnxt_dl_register(bp); + if (BNXT_PF(bp)) + devlink_port_type_eth_set(&bp->dl_port, bp->dev); bnxt_dl_fw_reporters_create(bp); netdev_info(dev, "%s found at mem %lx, node addr %pM\n", @@ -11931,7 +11934,8 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) return 0; -init_err_cleanup_tc: +init_err_cleanup: + bnxt_dl_unregister(bp); bnxt_shutdown_tc(bp); bnxt_clear_int_mode(bp); diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c index a8cdfbdd..f2d9cd6 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c @@ -561,7 +561,6 @@ int bnxt_dl_register(struct bnxt *bp) netdev_err(bp->dev, "devlink_port_register failed"); goto err_dl_unreg; } - devlink_port_type_eth_set(&bp->dl_port, bp->dev); rc = bnxt_dl_params_register(bp); if (rc) From patchwork Sun Jan 26 09:03:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229356 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=VtjGzuQn; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856PN236Xz9sPW for ; Sun, 26 Jan 2020 20:03:52 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729262AbgAZJDv (ORCPT ); Sun, 26 Jan 2020 04:03:51 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:46659 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729199AbgAZJDt (ORCPT ); Sun, 26 Jan 2020 04:03:49 -0500 Received: by mail-pl1-f196.google.com with SMTP id y8so2615469pll.13 for ; Sun, 26 Jan 2020 01:03:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3V5ACPgT39YvmTMTFjJwiVoP1HrgVABnVL1ahnNO+xI=; b=VtjGzuQn991vIJ4G0wR/nt+CdS/j/e7rX7H+DUapyd4/P0mbAyV/CYKr2i/lyPiM3Y 5f4xQYfo2LsEkfqpyN/OMADz5HZKP9EcereXn3igf8AhsJpyeMkGN864uGor++P3roxQ fASCX0kkGBzWXejZqmhZi+oZosEsJu4W2NfJo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=3V5ACPgT39YvmTMTFjJwiVoP1HrgVABnVL1ahnNO+xI=; b=JmbtwpUKpcldsJxmHTeOAtzPM0cNQxlZm9qpqbWeZSyRRPDUhcfduaQKMRjuTNfKYF 2FSrjMY0WxO7ay/wgDVmw9XGjILrL2oo5Wxc2wEwDE9oA3cHOC5IyZ0le+3EG4rp6mV3 CnC6bjGDHdoVMusuCbheTwCmRTDCwZTToDPyERDKj6tShxlJVHLfpl5wvT9ZU1n76aJL oXZ+IKqECr4CZe3BT5eErCzjb46uWtBE9e+n9BgCIuMfZJeeiHpVBB/gD5VhHeHh9Wcz hARasW6MfsDl0NFerSJX7Bs9/+eSXe4lpupAap2o9H2j6uNuGiuJkrX8IWoq6Z/NjIV2 b+JA== X-Gm-Message-State: APjAAAU6VXrJZrq4SGnXiKG6OIutTFNxxzU4XWV0zGLN1TVq/n6LEJCS u79nyj94ZqPylurjipYyIqvM6g== X-Google-Smtp-Source: APXvYqx7Pxh3ks2zdFRht29ytoUJq62ZJEQbPFR6JSZXV2gbFz5tprEPmRVi2alwOhUdY42jVmuX+g== X-Received: by 2002:a17:902:8b89:: with SMTP id ay9mr12032352plb.309.1580029428924; Sun, 26 Jan 2020 01:03:48 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:48 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Vasundhara Volam , Jiri Pirko Subject: [PATCH net-next 12/16] bnxt_en: Add support to update progress of flash update Date: Sun, 26 Jan 2020 04:03:06 -0500 Message-Id: <1580029390-32760-13-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Vasundhara Volam This patch adds status notification to devlink flash update while flashing is in progress. $ devlink dev flash pci/0000:05:00.0 file 103.pkg Preparing to flash Flashing done Cc: Jiri Pirko Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c index f2d9cd6..265a68c 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c @@ -21,6 +21,7 @@ bnxt_dl_flash_update(struct devlink *dl, const char *filename, const char *region, struct netlink_ext_ack *extack) { struct bnxt *bp = bnxt_get_bp_from_dl(dl); + int rc; if (region) return -EOPNOTSUPP; @@ -31,7 +32,18 @@ bnxt_dl_flash_update(struct devlink *dl, const char *filename, return -EPERM; } - return bnxt_flash_package_from_file(bp->dev, filename, 0); + devlink_flash_update_begin_notify(dl); + devlink_flash_update_status_notify(dl, "Preparing to flash", region, 0, + 0); + rc = bnxt_flash_package_from_file(bp->dev, filename, 0); + if (!rc) + devlink_flash_update_status_notify(dl, "Flashing done", region, + 0, 0); + else + devlink_flash_update_status_notify(dl, "Flashing failed", + region, 0, 0); + devlink_flash_update_end_notify(dl); + return rc; } static int bnxt_fw_reporter_diagnose(struct devlink_health_reporter *reporter, From patchwork Sun Jan 26 09:03:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229357 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=MUBK1hYm; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856PQ2MRDz9sPW for ; Sun, 26 Jan 2020 20:03:54 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729275AbgAZJDx (ORCPT ); Sun, 26 Jan 2020 04:03:53 -0500 Received: from mail-pf1-f193.google.com ([209.85.210.193]:33393 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729199AbgAZJDv (ORCPT ); Sun, 26 Jan 2020 04:03:51 -0500 Received: by mail-pf1-f193.google.com with SMTP id n7so3408818pfn.0 for ; Sun, 26 Jan 2020 01:03:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=iYBzVb6naDldJe4hf7U6l5OHVSRQxMupzpkin4tdgB4=; b=MUBK1hYmQS8g+1xp+WJwESchYbI6apJKqfJCSjkQ2qiNcDR03VOD0smP6Zuitp46Yw 9pcYD2fcYyjr55jaIJX6Q61MpXtt/EHbr8eoEMTuq6RU8nDvSp/OyYDzcsLBfUPblLxU aYN5QpJkRz0vPj9c36/HAg4WGfkZ/oT+PTyo4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=iYBzVb6naDldJe4hf7U6l5OHVSRQxMupzpkin4tdgB4=; b=d0nPrDgHKt90Y7Oi7BQ5vaXtGpF60hBlmxpKNqNqgGg3S58VW9b3iG061ESoTP+RqI XLikSkQpe0CqpMLujoX2oQ2f5wjYco2x28+SS5TFJdXDYHkVlWJvKt+rqQElmJkOll3I uY2rJfPY0w2vcxRYxwsfic7tzEmbY5UcMR2iwAi3WBNKWlgxWZlHwq4pvPMHS0q9JeSr RI5A+8X0eC2vxP5MC4ZszJ1zRxqAuZt70mLCc0kzfLFzbY5mjzh8r4qPiyARqnyrRvUd sAe6ECSJtiwUD+ooJIZHCR6ZkxLty/c41DGE2J8lhQJc663Q3SMbaSDy8g++LSJCpWjb KOfw== X-Gm-Message-State: APjAAAVhBFBydpA2mIwLCVv5CxG+hAEXfl/GzjPPqSXeGc3u54czLprF K7T7iLsCbRML3tJ3P+EgQu9mE2rShgQ= X-Google-Smtp-Source: APXvYqy8mgSf1lci80RC0rh174mJu8CkVfcFTKTLQREAK4XMgrN9uiLof8RMHCrcbQavOVO4fi1yuA== X-Received: by 2002:a63:5056:: with SMTP id q22mr13230903pgl.20.1580029431107; Sun, 26 Jan 2020 01:03:51 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:50 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Vasundhara Volam Subject: [PATCH net-next 13/16] bnxt_en: Rename switch_id to dsn Date: Sun, 26 Jan 2020 04:03:07 -0500 Message-Id: <1580029390-32760-14-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Vasundhara Volam Instead of switch_id, renaming it to dsn will be more meaningful so that it can be used to display device serial number in follow up patch via devlink_info command. Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 +++--- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 8579415..483935b 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -11388,8 +11388,8 @@ int bnxt_get_port_parent_id(struct net_device *dev, if (!BNXT_PF(bp) || !(bp->flags & BNXT_FLAG_DSN_VALID)) return -EOPNOTSUPP; - ppid->id_len = sizeof(bp->switch_id); - memcpy(ppid->id, bp->switch_id, ppid->id_len); + ppid->id_len = sizeof(bp->dsn); + memcpy(ppid->id, bp->dsn, ppid->id_len); return 0; } @@ -11870,7 +11870,7 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) if (BNXT_PF(bp)) { /* Read the adapter's DSN to use as the eswitch switch_id */ - bnxt_pcie_dsn_get(bp, bp->switch_id); + rc = bnxt_pcie_dsn_get(bp, bp->dsn); } /* MTU range: 60 - FW defined max */ diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h index cb2b833..1f6ea58 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h @@ -1849,7 +1849,7 @@ struct bnxt { enum devlink_eswitch_mode eswitch_mode; struct bnxt_vf_rep **vf_reps; /* array of vf-rep ptrs */ u16 *cfa_code_map; /* cfa_code -> vf_idx map */ - u8 switch_id[8]; + u8 dsn[8]; struct bnxt_tc_info *tc_info; struct list_head tc_indr_block_list; struct notifier_block tc_netdev_nb; diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c index 265a68c..35e2a22 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c @@ -566,8 +566,8 @@ int bnxt_dl_register(struct bnxt *bp) return 0; devlink_port_attrs_set(&bp->dl_port, DEVLINK_PORT_FLAVOUR_PHYSICAL, - bp->pf.port_id, false, 0, - bp->switch_id, sizeof(bp->switch_id)); + bp->pf.port_id, false, 0, bp->dsn, + sizeof(bp->dsn)); rc = devlink_port_register(dl, &bp->dl_port, bp->pf.port_id); if (rc) { netdev_err(bp->dev, "devlink_port_register failed"); From patchwork Sun Jan 26 09:03:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229358 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=XpDuNvPE; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856PS5lK8z9sPW for ; Sun, 26 Jan 2020 20:03:56 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387394AbgAZJDz (ORCPT ); Sun, 26 Jan 2020 04:03:55 -0500 Received: from mail-pf1-f181.google.com ([209.85.210.181]:40181 "EHLO mail-pf1-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729199AbgAZJDy (ORCPT ); Sun, 26 Jan 2020 04:03:54 -0500 Received: by mail-pf1-f181.google.com with SMTP id q8so3427079pfh.7 for ; Sun, 26 Jan 2020 01:03:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=VgrjMqR8ZwCZ3PkVigo/SBylYoGbTHwJaw7w0KrYs9k=; b=XpDuNvPEd5jmbJV/vKZDLk/ThQswXTdRWSpZw8Dxk9NnE4voupvwBkHIO1IRliYzbP w8E8BYVLGaKP16b2xbitlQYqOXJEY19yRiX6RXKV10CW1Z7abCg453QEidxZy43MO+N9 lTQkXIKkY41fjq8hMIDR6fK+IaeBxxOaFGrpI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=VgrjMqR8ZwCZ3PkVigo/SBylYoGbTHwJaw7w0KrYs9k=; b=pe37Hlp4B7hvQ/Tt5fwW/M82OTmnAttDEVeJToY3/ztaRoDtnzpzyBXchb+Tww26WZ /34wO9/62Uqkn7CcRGaUZ6tEyTv9V+HlasHGxhU0ATY8EVeYkfr7Cr4h7zsick0WEzeT IMXg4JCQmkoQIFzyNAqHQz15oOfegboXboRwK1Ypy4d4e2mDnXK8MUJWnVxzzqEygDVk q58HCYH/e948Qu0RNTEo1tXbROg/BVZtbA3uzTI+nZdTNnLZdwlLPTvBs+nrDLEUpxI/ s2Jjv4mWYQ/ZTjAh0SFJaBETw69YRxwk5jGLvJNN5O6IYWk6vhSknlD9kyOEJ/ZfJGTd 0STw== X-Gm-Message-State: APjAAAUMZA/EGM13f8ysVADPz7hZwNtdYm2oau7JrPzH8rNQ4Rm1WFgl Wvmw0Jiy1o4jiCiU+F98Vpdgmg== X-Google-Smtp-Source: APXvYqwS8wmVowUocYF9NCU1XGziXD/fUTQlitgJBvGzIxJvfjsAKC8yW3Y8o+ORwEq1SIwClao0YQ== X-Received: by 2002:a65:66d7:: with SMTP id c23mr13977000pgw.40.1580029433491; Sun, 26 Jan 2020 01:03:53 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:53 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Vasundhara Volam , Jiri Pirko Subject: [PATCH net-next 14/16] devlink: add macros for "fw.roce" and "board.nvm_cfg" Date: Sun, 26 Jan 2020 04:03:08 -0500 Message-Id: <1580029390-32760-15-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Vasundhara Volam Add definitions and documentation for 2 new generic info "fw.roce" and "board.nvm_cfg". Cc: Jiri Pirko Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan --- Documentation/networking/devlink/devlink-info.rst | 11 +++++++++++ include/net/devlink.h | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/Documentation/networking/devlink/devlink-info.rst b/Documentation/networking/devlink/devlink-info.rst index 0385f15..ab0690e 100644 --- a/Documentation/networking/devlink/devlink-info.rst +++ b/Documentation/networking/devlink/devlink-info.rst @@ -59,6 +59,11 @@ board.manufacture An identifier of the company or the facility which produced the part. +board.nvm_cfg +------------- + +Non-volatile memory version of the board. + fw -- @@ -92,3 +97,9 @@ fw.psid ------- Unique identifier of the firmware parameter set. + +fw.roce +------- + +RoCE firmware version which is responsible for handling roce +management. diff --git a/include/net/devlink.h b/include/net/devlink.h index 5e46c24..9e168a3 100644 --- a/include/net/devlink.h +++ b/include/net/devlink.h @@ -469,6 +469,8 @@ enum devlink_param_generic_id { #define DEVLINK_INFO_VERSION_GENERIC_BOARD_REV "board.rev" /* Maker of the board */ #define DEVLINK_INFO_VERSION_GENERIC_BOARD_MANUFACTURE "board.manufacture" +/* Non-volatile memory version of the board */ +#define DEVLINK_INFO_VERSION_GENERIC_BOARD_NVM_CFG "board.nvm_cfg" /* Part number, identifier of asic design */ #define DEVLINK_INFO_VERSION_GENERIC_ASIC_ID "asic.id" @@ -487,6 +489,8 @@ enum devlink_param_generic_id { #define DEVLINK_INFO_VERSION_GENERIC_FW_NCSI "fw.ncsi" /* FW parameter set id */ #define DEVLINK_INFO_VERSION_GENERIC_FW_PSID "fw.psid" +/* RoCE FW version */ +#define DEVLINK_INFO_VERSION_GENERIC_FW_ROCE "fw.roce" struct devlink_region; struct devlink_info_req; From patchwork Sun Jan 26 09:03:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229359 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=ECVJHt+U; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856PW3r0mz9sPW for ; Sun, 26 Jan 2020 20:03:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729299AbgAZJD6 (ORCPT ); Sun, 26 Jan 2020 04:03:58 -0500 Received: from mail-pf1-f195.google.com ([209.85.210.195]:41812 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728253AbgAZJD4 (ORCPT ); Sun, 26 Jan 2020 04:03:56 -0500 Received: by mail-pf1-f195.google.com with SMTP id w62so3423729pfw.8 for ; Sun, 26 Jan 2020 01:03:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=uSSKMZZp+ULRQk0LXPp+WyBu4iWCwInPmoY+QTCF1dM=; b=ECVJHt+UZAqIDOJ0YvWA6r1QxgmN0hiUY4o2yWTT+wnBS1PcYGvuFax2t80/fDHVnh J6jC4SKAmrn8wxEpAf7qx7JL63s12RQ1Gd5L47txOgzwCPMtuhfMrYTchqOFXJp5cUs/ pQwOHqWKOQORl/Ty4o1oyvEQRmFNTZ9XDzGD8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=uSSKMZZp+ULRQk0LXPp+WyBu4iWCwInPmoY+QTCF1dM=; b=sJaXLEH+VlxALPeGxHrCgmzRpvmamZhAJnYhCgWW8ZZUYF9RT8J7ub3hwM28XKOCsz jBDKJqsSjkKLPXOivhW7aj1YfJqt7p+hRfOhfnBr+DkaPOwwVh+aITtHmRU0zAhE2hcW Iv4ak8ax7hY8c+P8AMixWRkqKoFG2KP+Q2mtsDgPr4ZOxP0F4aWS7tYVW22fi9fmNf4Z +vQ2Z7ybZz9nxO5Fpa3TslPVeZji584XAC47Q4vCt8vgIwxFbq3zVDrZZRUBu1UCJHdz 6DflSU1JNHjIxAsnfl3lhrtpcEVKg/vRk0lY6sGND5TJcLAI97KtCuLQby17AVb09Kha 2/sw== X-Gm-Message-State: APjAAAXB3fvTC6DnTdF+ZnsIdYt1ZmjE2XcD+j3Al2nAcBo8WvNE0R87 jimviKVv+BGzApIpWjMZwHLQidE+ARU= X-Google-Smtp-Source: APXvYqzyaP66eBmM6aKt5Co1qaloyDX1g9/EKhBrIWB+qp9ppKNbiVIvtJZIlTBhbDI++JI0jJz9GQ== X-Received: by 2002:a62:5343:: with SMTP id h64mr10734522pfb.171.1580029436120; Sun, 26 Jan 2020 01:03:56 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:55 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Vasundhara Volam , Jiri Pirko , Jakub Kicinski Subject: [PATCH net-next 15/16] bnxt_en: Add support for devlink info command Date: Sun, 26 Jan 2020 04:03:09 -0500 Message-Id: <1580029390-32760-16-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Vasundhara Volam Display the following information via devlink info command: - Driver name - Board id - Broad revision - Board Serial number - Board FW version - Board NVM CFG version - FW App version - FW management version - FW RoCE version Standard output example: $ devlink dev info pci/0000:3b:00.0 pci/0000:3b:00.0: driver bnxt_en serial_number 00-10-18-FF-FE-AD-05-00 versions: fixed: asic.id D802 asic.rev 1 running: fw 216.1.124.0 board.nvm_cfg_ver 0.0.0 fw.app 216.1.122.0 fw.mgmt 864.0.32.0 fw.roce 216.1.15.0 [ This version has incorporated changes suggested by Jakub Kicinski to use generic devlink version tags. ] Cc: Jiri Pirko Cc: Jakub Kicinski Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 135 ++++++++++++++++++++++ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h | 4 + 2 files changed, 139 insertions(+) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c index 35e2a22..0297fa1 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c @@ -284,11 +284,15 @@ void bnxt_dl_health_recovery_done(struct bnxt *bp) devlink_health_reporter_recovery_done(hlth->fw_reset_reporter); } +static int bnxt_dl_info_get(struct devlink *dl, struct devlink_info_req *req, + struct netlink_ext_ack *extack); + static const struct devlink_ops bnxt_dl_ops = { #ifdef CONFIG_BNXT_SRIOV .eswitch_mode_set = bnxt_dl_eswitch_mode_set, .eswitch_mode_get = bnxt_dl_eswitch_mode_get, #endif /* CONFIG_BNXT_SRIOV */ + .info_get = bnxt_dl_info_get, .flash_update = bnxt_dl_flash_update, }; @@ -355,6 +359,137 @@ static void bnxt_copy_from_nvm_data(union devlink_param_value *dst, dst->vu8 = (u8)val32; } +static int bnxt_hwrm_get_nvm_cfg_ver(struct bnxt *bp, + union devlink_param_value *nvm_cfg_ver) +{ + struct hwrm_nvm_get_variable_input req = {0}; + union bnxt_nvm_data *data; + dma_addr_t data_dma_addr; + int rc; + + bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_NVM_GET_VARIABLE, -1, -1); + data = dma_alloc_coherent(&bp->pdev->dev, sizeof(*data), + &data_dma_addr, GFP_KERNEL); + if (!data) + return -ENOMEM; + + req.dest_data_addr = cpu_to_le64(data_dma_addr); + req.data_len = cpu_to_le16(BNXT_NVM_CFG_VER_BITS); + req.option_num = cpu_to_le16(NVM_OFF_NVM_CFG_VER); + + rc = hwrm_send_message_silent(bp, &req, sizeof(req), HWRM_CMD_TIMEOUT); + if (!rc) + bnxt_copy_from_nvm_data(nvm_cfg_ver, data, + BNXT_NVM_CFG_VER_BITS, + BNXT_NVM_CFG_VER_BYTES); + + dma_free_coherent(&bp->pdev->dev, sizeof(*data), data, data_dma_addr); + return rc; +} + +static int bnxt_dl_info_get(struct devlink *dl, struct devlink_info_req *req, + struct netlink_ext_ack *extack) +{ + struct bnxt *bp = bnxt_get_bp_from_dl(dl); + union devlink_param_value nvm_cfg_ver; + struct hwrm_ver_get_output *ver_resp; + char mgmt_ver[FW_VER_STR_LEN]; + char roce_ver[FW_VER_STR_LEN]; + char fw_ver[FW_VER_STR_LEN]; + char buf[32]; + int rc; + + rc = devlink_info_driver_name_put(req, DRV_MODULE_NAME); + if (rc) + return rc; + + sprintf(buf, "%X", bp->chip_num); + rc = devlink_info_version_fixed_put(req, + DEVLINK_INFO_VERSION_GENERIC_ASIC_ID, buf); + if (rc) + return rc; + + ver_resp = &bp->ver_resp; + sprintf(buf, "%X", ver_resp->chip_rev); + rc = devlink_info_version_fixed_put(req, + DEVLINK_INFO_VERSION_GENERIC_ASIC_REV, buf); + if (rc) + return rc; + + if (BNXT_PF(bp)) { + sprintf(buf, "%02X-%02X-%02X-%02X-%02X-%02X-%02X-%02X", + bp->dsn[7], bp->dsn[6], bp->dsn[5], bp->dsn[4], + bp->dsn[3], bp->dsn[2], bp->dsn[1], bp->dsn[0]); + rc = devlink_info_serial_number_put(req, buf); + if (rc) + return rc; + } + + if (strlen(ver_resp->active_pkg_name)) { + rc = + devlink_info_version_running_put(req, + DEVLINK_INFO_VERSION_GENERIC_FW, + ver_resp->active_pkg_name); + if (rc) + return rc; + } + + if (BNXT_PF(bp) && !bnxt_hwrm_get_nvm_cfg_ver(bp, &nvm_cfg_ver)) { + u32 ver = nvm_cfg_ver.vu32; + + sprintf(buf, "%X.%X.%X", (ver >> 16) & 0xF, (ver >> 8) & 0xF, + ver & 0xF); + rc = devlink_info_version_running_put(req, + DEVLINK_INFO_VERSION_GENERIC_BOARD_NVM_CFG, + buf); + if (rc) + return rc; + } + + if (ver_resp->flags & VER_GET_RESP_FLAGS_EXT_VER_AVAIL) { + snprintf(fw_ver, FW_VER_STR_LEN, "%d.%d.%d.%d", + ver_resp->hwrm_fw_major, ver_resp->hwrm_fw_minor, + ver_resp->hwrm_fw_build, ver_resp->hwrm_fw_patch); + + snprintf(mgmt_ver, FW_VER_STR_LEN, "%d.%d.%d.%d", + ver_resp->mgmt_fw_major, ver_resp->mgmt_fw_minor, + ver_resp->mgmt_fw_build, ver_resp->mgmt_fw_patch); + + snprintf(roce_ver, FW_VER_STR_LEN, "%d.%d.%d.%d", + ver_resp->roce_fw_major, ver_resp->roce_fw_minor, + ver_resp->roce_fw_build, ver_resp->roce_fw_patch); + } else { + snprintf(fw_ver, FW_VER_STR_LEN, "%d.%d.%d.%d", + ver_resp->hwrm_fw_maj_8b, ver_resp->hwrm_fw_min_8b, + ver_resp->hwrm_fw_bld_8b, ver_resp->hwrm_fw_rsvd_8b); + + snprintf(mgmt_ver, FW_VER_STR_LEN, "%d.%d.%d.%d", + ver_resp->mgmt_fw_maj_8b, ver_resp->mgmt_fw_min_8b, + ver_resp->mgmt_fw_bld_8b, ver_resp->mgmt_fw_rsvd_8b); + + snprintf(roce_ver, FW_VER_STR_LEN, "%d.%d.%d.%d", + ver_resp->roce_fw_maj_8b, ver_resp->roce_fw_min_8b, + ver_resp->roce_fw_bld_8b, ver_resp->roce_fw_rsvd_8b); + } + rc = devlink_info_version_running_put(req, + DEVLINK_INFO_VERSION_GENERIC_FW_APP, fw_ver); + if (rc) + return rc; + + if (!(bp->flags & BNXT_FLAG_CHIP_P5)) { + rc = devlink_info_version_running_put(req, + DEVLINK_INFO_VERSION_GENERIC_FW_MGMT, mgmt_ver); + if (rc) + return rc; + + rc = devlink_info_version_running_put(req, + DEVLINK_INFO_VERSION_GENERIC_FW_ROCE, roce_ver); + if (rc) + return rc; + } + return 0; +} + static int bnxt_hwrm_nvm_req(struct bnxt *bp, u32 param_id, void *msg, int msg_len, union devlink_param_value *val) { diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h index 08aaa44..95f893f 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h @@ -38,6 +38,10 @@ static inline void bnxt_link_bp_to_dl(struct bnxt *bp, struct devlink *dl) #define NVM_OFF_IGNORE_ARI 164 #define NVM_OFF_DIS_GRE_VER_CHECK 171 #define NVM_OFF_ENABLE_SRIOV 401 +#define NVM_OFF_NVM_CFG_VER 602 + +#define BNXT_NVM_CFG_VER_BITS 24 +#define BNXT_NVM_CFG_VER_BYTES 4 #define BNXT_MSIX_VEC_MAX 1280 #define BNXT_MSIX_VEC_MIN_MAX 128 From patchwork Sun Jan 26 09:03:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 1229360 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 (no SPF record) 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=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.a=rsa-sha256 header.s=google header.b=gP3yKzOo; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4856PZ48D8z9sPW for ; Sun, 26 Jan 2020 20:04:02 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729306AbgAZJEB (ORCPT ); Sun, 26 Jan 2020 04:04:01 -0500 Received: from mail-pl1-f181.google.com ([209.85.214.181]:37755 "EHLO mail-pl1-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728253AbgAZJD7 (ORCPT ); Sun, 26 Jan 2020 04:03:59 -0500 Received: by mail-pl1-f181.google.com with SMTP id c23so2633782plz.4 for ; Sun, 26 Jan 2020 01:03:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=aAlrNGLqGJUXgYLHYc8hZuU+35xV6eCos5KAsJeJnlk=; b=gP3yKzOoEADfUY7geP5z7IctRn7UXTcoHfywY2SsCLYKsg3CsUduheSzJ3otu+ACKG VsSg8SrodRuwQWJCjOS6I4TlrSAgDH6kHzZYjgVwFE9SU0gg+1IuU95a2CNFVpi3z/0D spW33e/ZZL7P9GjK1YQdi+/jOq1BR4tJh+Z9g= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=aAlrNGLqGJUXgYLHYc8hZuU+35xV6eCos5KAsJeJnlk=; b=GcyEnmzqX/PwCnK008Z2goghQ2Ss5GHLGGGhkoUOPx0PFPcnT8b8Mg3r9oogh7uUoT hshR18TBeC3O5wXvtNR3o7JLVnyroVQJum8hDy5D5Df/x4Dfg1Mrr7glE4FaZ9ysHg1m IHuGcRzv7wnNyuC+gQsXopOE986HaxjCJVKoZeC5nstBs+dFDw+W1Ibx+QLpioBbgH5U jStYa8EfHBBKwYgTaLci6WvtOl2W2EmLWMqSWySYTqyF5wQ3lGtQRztQF2jvSR4xzFKm C+3yaiJaz3N2M1Icn1yoAR7YHh5AvzeHNI+/lZwPJYM08An8jXonSE2NndU14PEoei5y qWCg== X-Gm-Message-State: APjAAAW4Op57mlkA3sT6eYJky+IWaL5NcPMAhPTmiV4+Jvl4aFtJc9Ui zFTQtvzobOULrTzIBb+IaeEU1g== X-Google-Smtp-Source: APXvYqx8lVmqlVQ0g9vAlW7+q1SXhLkhVDNQKwK12XnWkITE+hrtBypePU4Ihxd38QonqSYahjGfHg== X-Received: by 2002:a17:902:6bcb:: with SMTP id m11mr12764340plt.10.1580029438554; Sun, 26 Jan 2020 01:03:58 -0800 (PST) Received: from localhost.swdvt.lab.broadcom.com ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i17sm11856315pfr.67.2020.01.26.01.03.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2020 01:03:58 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, Vasundhara Volam , Jiri Pirko Subject: [PATCH net-next 16/16] devlink: document devlink info versions reported by bnxt_en driver Date: Sun, 26 Jan 2020 04:03:10 -0500 Message-Id: <1580029390-32760-17-git-send-email-michael.chan@broadcom.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> References: <1580029390-32760-1-git-send-email-michael.chan@broadcom.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Vasundhara Volam Add the set of info versions reported by bnxt_en driver, including a description of what the version represents, and what modes (fixed, running, stored) it reports. Cc: Jiri Pirko Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan --- Documentation/networking/devlink/bnxt.rst | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Documentation/networking/devlink/bnxt.rst b/Documentation/networking/devlink/bnxt.rst index 79e746d..9048e7b 100644 --- a/Documentation/networking/devlink/bnxt.rst +++ b/Documentation/networking/devlink/bnxt.rst @@ -39,3 +39,36 @@ parameters. - Generic Routing Encapsulation (GRE) version check will be enabled in the device. If disabled, the device will skip the version check for incoming packets. + +Info versions +============= + +The ``bnxt_en`` driver reports the following versions + +.. list-table:: devlink info versions implemented + :widths: 5 5 90 + + * - Name + - Type + - Description + * - ``asic.id`` + - fixed + - ASIC design identifier + * - ``asic.rev`` + - fixed + - ASIC design revision + * - ``board.nvm_cfg_ver`` + - stored, running + - Non-volatile memory version of the board + * - ``fw`` + - stored, running + - Overall board firmware version + * - ``fw.app`` + - stored, running + - Data path firmware version + * - ``fw.mgmt`` + - stored, running + - Management firmware version + * - ``fw.roce`` + - stored, running + - RoCE management firmware version