From patchwork Wed Dec 18 00:51:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211856 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=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="lOd31Fcj"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47cxKw4G9tz9sS9 for ; Wed, 18 Dec 2019 11:52:04 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726674AbfLRAv3 (ORCPT ); Tue, 17 Dec 2019 19:51:29 -0500 Received: from mail-pf1-f194.google.com ([209.85.210.194]:32999 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726072AbfLRAv1 (ORCPT ); Tue, 17 Dec 2019 19:51:27 -0500 Received: by mail-pf1-f194.google.com with SMTP id z16so223671pfk.0; Tue, 17 Dec 2019 16:51:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=DP99ZbPmc6NjQOnjlJkOUhqOZNp0C1aPqy3Uar/d9j8=; b=lOd31FcjVQxqLYIJCxWpjVAHgiHhWWi7EPgkOjD0Q/v7vCusjnIAeXhy72iiYOB5VQ 1xc+8quNrNEw59Bpyxx2NjbXHOSGAqOamxpu1vY3THPnAYa3GVn5Hw2/+/OoXDpPeEwD MFo43FqdjcgBX+H1PtbIMbokPZNT2OgFkQ/NHap61kmwVyVHGrnZWjTjCYIXFArY60Ix sE/1/PubeAqQh/y1hpwdMZWzf0KhXLet7dqwi7F6TDqTPlcX8tLnM/88j2nV93Z16HzY OUrGVFs//bXZsxorQg1ki5JfvqF9zQJQ2/qojTQSZBoUNty3T4r9HrXV+ThTwPsLoumG D+vQ== 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=DP99ZbPmc6NjQOnjlJkOUhqOZNp0C1aPqy3Uar/d9j8=; b=YEKl3gBw55PPureeHEnm4hF/fETnfwtll4ZeQ8pCNQhm7WaRY6OvadctLqVjeQiCw7 DP1hgLgg9TijUp1Iq6UHd3WuXKuFTaZplTa1S6I7MLBCgUT+zdNIhQGgCaVygFbhIQly HOVbq9NDrooF+Aon1IgTkn5zBCVZD8nzXR2h9vRydzV+yvk5dzLOVEgGVksgjpfDX8cn 2cVVvhveCObkiA7JXirHz0mx/i9qac86Gq9ulqzs+O80BeShS2dB5GzbbqRW4UiSeQk1 jvgwYO+NQ84Yx1ByNFhyk8CFTe+DN46M1NgWGcaPdylIyskPV+L0/LpC2JuG33ITYig4 VotQ== X-Gm-Message-State: APjAAAVnPSIThmn4YdWplf14KeQXaxxP2Cgby72TrVkHj4d1kEPIreA9 qmxcB9q9CUGa9ab15x+CBZU= X-Google-Smtp-Source: APXvYqxGhUNx7aHd9ZYdOBbXkD7QDQTmLnkR8Ieq2WiprmEikGJ5sFVkfMtSAEJFfRiFp3SBzsNtpQ== X-Received: by 2002:aa7:9556:: with SMTP id w22mr716065pfq.198.1576630287332; Tue, 17 Dec 2019 16:51:27 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 81sm274819pfx.30.2019.12.17.16.51.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 16:51:26 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next v2 1/8] net: bcmgenet: enable NETIF_F_HIGHDMA flag Date: Tue, 17 Dec 2019 16:51:08 -0800 Message-Id: <1576630275-17591-2-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576630275-17591-1-git-send-email-opendmb@gmail.com> References: <1576630275-17591-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This commit configures the DMA masks for the GENET driver and sets the NETIF_F_HIGHDMA flag to report support of the feature. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 32f1245a69e2..d9defb8b1e5f 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -2,7 +2,7 @@ /* * Broadcom GENET (Gigabit Ethernet) controller driver * - * Copyright (c) 2014-2017 Broadcom + * Copyright (c) 2014-2019 Broadcom */ #define pr_fmt(fmt) "bcmgenet: " fmt @@ -3537,7 +3537,7 @@ static int bcmgenet_probe(struct platform_device *pdev) /* Set hardware features */ dev->hw_features |= NETIF_F_SG | NETIF_F_IP_CSUM | - NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM; + NETIF_F_IPV6_CSUM | NETIF_F_HIGHDMA | NETIF_F_RXCSUM; /* Request the WOL interrupt and advertise suspend if available */ priv->wol_irq_disabled = true; @@ -3574,6 +3574,14 @@ static int bcmgenet_probe(struct platform_device *pdev) bcmgenet_set_hw_params(priv); + err = -EIO; + if (priv->hw_params->flags & GENET_HAS_40BITS) + err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(40)); + if (err) + err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); + if (err) + goto err; + /* Mii wait queue */ init_waitqueue_head(&priv->wq); /* Always use RX_BUF_LENGTH (2KB) buffer for all chips */ From patchwork Wed Dec 18 00:51:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211850 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=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="t97yb1vx"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47cxKH3fKKz9sRs for ; Wed, 18 Dec 2019 11:51:31 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726722AbfLRAva (ORCPT ); Tue, 17 Dec 2019 19:51:30 -0500 Received: from mail-pf1-f195.google.com ([209.85.210.195]:34408 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726622AbfLRAv2 (ORCPT ); Tue, 17 Dec 2019 19:51:28 -0500 Received: by mail-pf1-f195.google.com with SMTP id l127so220821pfl.1; Tue, 17 Dec 2019 16:51:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=UEz81YOfOgBDrXB7OBw3GPro4KGLJ3XN1bscFo4nSHA=; b=t97yb1vxXkG/djwdLbRKjohBeoTRhDeleTGCVfTIsT66NGa7/Hj6kggSMaDYkEkLZE gm0vNCjv9LrCx24Y+RcpcmWZgEgllgLic6S2qC1J54vgW+Ps2O/sGYXjVc5RBgig7rFq sRZZ828iU512CrFzwP2+7wCQVzkpiZ2AptC1kaNwoYmLtpiwvyzuwEWKR8Bwu1RLsxgr 96ecoDCxx2yESbCKafJb9jI+phvMIMM0DRSPI850zIVsCFpPXwC9fEmBaKFuCf9ffIiA ZygVILRlS0om3jTk2eYfmVlR3XfhRZ0ibbfpEW+E2T445UcqfjK8erDFtUdTBH438OCE nMyQ== 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=UEz81YOfOgBDrXB7OBw3GPro4KGLJ3XN1bscFo4nSHA=; b=bh+JNt2uNg36v0vFWQHImM7kRnzYJ8+v5wyEfeZpPePfwidejxeGI18QsBtsHh+BNE Jb8lZxVDA5okG6Oa9ZEtI2kCo2Ypd8vaYNoJ8mT7sLcEIIL9ppVznh28p6MFaODTxsKh wAYMzaiJwSBu6QlmNsB7uj1EU/qyXA+yZ85w4uLb5vDJMNbYR7dpUFQqZioi2sfMEymM 3LFTlSvvgmUyjGjfFT0s25f9OOTp4SxhR/ddkTgBiuS6IAT8WuYtA9Zni/EeWuHmsXjl FvWkUpTRE/jPlLHXxh4E51YIjvyrgOxXDYa/Gx2Ftd4ztsgbhDoOWu5BLQacJfr+xlL9 Xm1g== X-Gm-Message-State: APjAAAVDwdm0BhgD1wseD0Y8V+VxT7kcQ4yqB3hXanQbU8PoHPvITxxP xpi56nrgeOmIKAr2nG61IJk= X-Google-Smtp-Source: APXvYqy1SksUaSH0FAzwZ+sGR52I7r4GRshE/GnUS0YdrVHXPt78pgU4IGx7cz0x/uA2W5uOwCGQKA== X-Received: by 2002:a62:1c88:: with SMTP id c130mr668902pfc.195.1576630288050; Tue, 17 Dec 2019 16:51:28 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 81sm274819pfx.30.2019.12.17.16.51.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 16:51:27 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next v2 2/8] net: bcmgenet: enable NETIF_F_HW_CSUM feature Date: Tue, 17 Dec 2019 16:51:09 -0800 Message-Id: <1576630275-17591-3-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576630275-17591-1-git-send-email-opendmb@gmail.com> References: <1576630275-17591-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The GENET hardware should be capable of generating IP checksums using the NETIF_F_HW_CSUM feature, so switch to using that feature instead of the depricated NETIF_F_IP_CSUM and NETIF_F_IPV6_CSUM. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 29 +++++++++++--------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index d9defb8b1e5f..cd07b3ad1d53 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -549,7 +549,7 @@ static int bcmgenet_set_tx_csum(struct net_device *dev, tbuf_ctrl = bcmgenet_tbuf_ctrl_get(priv); rbuf_ctrl = bcmgenet_rbuf_readl(priv, RBUF_CTRL); - desc_64b_en = !!(wanted & (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM)); + desc_64b_en = !!(wanted & NETIF_F_HW_CSUM); /* enable 64 bytes descriptor in both directions (RBUF and TBUF) */ if (desc_64b_en) { @@ -574,7 +574,7 @@ static int bcmgenet_set_features(struct net_device *dev, netdev_features_t wanted = dev->wanted_features; int ret = 0; - if (changed & (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM)) + if (changed & NETIF_F_HW_CSUM) ret = bcmgenet_set_tx_csum(dev, wanted); if (changed & (NETIF_F_RXCSUM)) ret = bcmgenet_set_rx_csum(dev, wanted); @@ -1516,24 +1516,19 @@ static struct sk_buff *bcmgenet_put_tx_csum(struct net_device *dev, ip_proto = ipv6_hdr(skb)->nexthdr; break; default: - return skb; + /* don't use UDP flag */ + ip_proto = 0; + break; } offset = skb_checksum_start_offset(skb) - sizeof(*status); tx_csum_info = (offset << STATUS_TX_CSUM_START_SHIFT) | - (offset + skb->csum_offset); + (offset + skb->csum_offset) | + STATUS_TX_CSUM_LV; - /* Set the length valid bit for TCP and UDP and just set - * the special UDP flag for IPv4, else just set to 0. - */ - if (ip_proto == IPPROTO_TCP || ip_proto == IPPROTO_UDP) { - tx_csum_info |= STATUS_TX_CSUM_LV; - if (ip_proto == IPPROTO_UDP && - ip_ver == htons(ETH_P_IP)) - tx_csum_info |= STATUS_TX_CSUM_PROTO_UDP; - } else { - tx_csum_info = 0; - } + /* Set the special UDP flag for UDP */ + if (ip_proto == IPPROTO_UDP) + tx_csum_info |= STATUS_TX_CSUM_PROTO_UDP; status->tx_csum_info = tx_csum_info; } @@ -3536,8 +3531,8 @@ static int bcmgenet_probe(struct platform_device *pdev) priv->msg_enable = netif_msg_init(-1, GENET_MSG_DEFAULT); /* Set hardware features */ - dev->hw_features |= NETIF_F_SG | NETIF_F_IP_CSUM | - NETIF_F_IPV6_CSUM | NETIF_F_HIGHDMA | NETIF_F_RXCSUM; + dev->hw_features |= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | + NETIF_F_RXCSUM; /* Request the WOL interrupt and advertise suspend if available */ priv->wol_irq_disabled = true; From patchwork Wed Dec 18 00:51:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211857 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=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Ij4UyBP0"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47cxL02jJbz9sS9 for ; Wed, 18 Dec 2019 11:52:08 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726920AbfLRAwE (ORCPT ); Tue, 17 Dec 2019 19:52:04 -0500 Received: from mail-pg1-f194.google.com ([209.85.215.194]:34646 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726668AbfLRAv3 (ORCPT ); Tue, 17 Dec 2019 19:51:29 -0500 Received: by mail-pg1-f194.google.com with SMTP id r11so274721pgf.1; Tue, 17 Dec 2019 16:51:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=bC8xpGTpq9fn64v8maHj0PUZzceljBSRagYcgY19Ysc=; b=Ij4UyBP0+yncgWMhW9jTEDQ5mISHpRzjJO2lz81cDjg/apiem84HH34uKP6hpRent5 hC1yVOH/oQE7I1y4PjlLqB8YUwg7cRUlYXprIxZ87QA94eF28TSaEmSBQdxSq/59wUH8 wWgtubRYo5aOR+pBcbwuIZOULF1VpnD1pin3aN55JsSYbkvEk8GLf4NLtpdm2uIDu63n K/uKjzX7MHvGxRlynUjMsjSF+fbKo032g+0AdcWDIwOIwCo5E9YyppyTkBbXPcy3LrLU P4N99/emBUSmkrWQx2h+e/JUa8kK5WRl/E03XYlwN+0yorpugzr2N1cX4okVusAWg0PH agkQ== 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=bC8xpGTpq9fn64v8maHj0PUZzceljBSRagYcgY19Ysc=; b=UjaiwkTrreR/8wt0DKJMKH3srLCvFXIYrugszv9+DK9WjYld0sy7bdzwcdtUsMKc1x LggjJV3V+Dks6D2QnvCd2juEzM0Aqk5XJhxQUFjNb0Bm1rF/WGe6shFN736y10rRx/8n Dwg4+mplKMaL7dYJUUoLeXuO2PHmFkz8bYnD3P+/z8ZoII5w8ZBsWSs5yv5+IuiQqFQU IXvLVZHLwbkdIFUbi0IMMrAV1WxYEQNC8OL7Sk73vOxoSwObRAiECMJXMV11MbAGojAQ Aj0Ek4JNT2N7I8o4jBcmlehf/E7sdAcRQ9nnxbECz+sqk49FjfpVMLDCTErp/REgAzJg ApMw== X-Gm-Message-State: APjAAAVkc8MBvcivrsYCMV3K330qpqZlk8T0xcgsj/O43g448vBcxSne 83Y/FEEFb1O8j8bq/Ufcf5k= X-Google-Smtp-Source: APXvYqyqTWoFY8MRxUvPLlKkbLUkYwGc5QFw+1oM53gP0bvANui5aMPMfsh4NEBZGwOW0t/dROls0w== X-Received: by 2002:a62:788a:: with SMTP id t132mr719812pfc.134.1576630288887; Tue, 17 Dec 2019 16:51:28 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 81sm274819pfx.30.2019.12.17.16.51.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 16:51:28 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next v2 3/8] net: bcmgenet: use CHECKSUM_COMPLETE for NETIF_F_RXCSUM Date: Tue, 17 Dec 2019 16:51:10 -0800 Message-Id: <1576630275-17591-4-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576630275-17591-1-git-send-email-opendmb@gmail.com> References: <1576630275-17591-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This commit updates the Rx checksum offload behavior of the driver to use the more generic CHECKSUM_COMPLETE method that supports all protocols over the CHECKSUM_UNNECESSARY method that only applies to some protocols known by the hardware. This behavior is perceived to be superior. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 19 +++++++------------ drivers/net/ethernet/broadcom/genet/bcmgenet.h | 2 +- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index cd07b3ad1d53..13cbe5828adb 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -521,7 +521,7 @@ static int bcmgenet_set_rx_csum(struct net_device *dev, /* enable rx checksumming */ if (rx_csum_en) - rbuf_chk_ctrl |= RBUF_RXCHK_EN; + rbuf_chk_ctrl |= RBUF_RXCHK_EN | RBUF_L3_PARSE_DIS; else rbuf_chk_ctrl &= ~RBUF_RXCHK_EN; priv->desc_rxchk_en = rx_csum_en; @@ -1739,7 +1739,6 @@ static unsigned int bcmgenet_desc_rx(struct bcmgenet_rx_ring *ring, unsigned int bytes_processed = 0; unsigned int p_index, mask; unsigned int discards; - unsigned int chksum_ok = 0; /* Clear status before servicing to reduce spurious interrupts */ if (ring->index == DESC_INDEX) { @@ -1790,9 +1789,15 @@ static unsigned int bcmgenet_desc_rx(struct bcmgenet_rx_ring *ring, dmadesc_get_length_status(priv, cb->bd_addr); } else { struct status_64 *status; + __be16 rx_csum; status = (struct status_64 *)skb->data; dma_length_status = status->length_status; + rx_csum = (__force __be16)(status->rx_csum & 0xffff); + if (priv->desc_rxchk_en) { + skb->csum = (__force __wsum)ntohs(rx_csum); + skb->ip_summed = CHECKSUM_COMPLETE; + } } /* DMA flags and length are still valid no matter how @@ -1835,18 +1840,12 @@ static unsigned int bcmgenet_desc_rx(struct bcmgenet_rx_ring *ring, goto next; } /* error packet */ - chksum_ok = (dma_flag & priv->dma_rx_chk_bit) && - priv->desc_rxchk_en; - skb_put(skb, len); if (priv->desc_64b_en) { skb_pull(skb, 64); len -= 64; } - if (likely(chksum_ok)) - skb->ip_summed = CHECKSUM_UNNECESSARY; - /* remove hardware 2bytes added for IP alignment */ skb_pull(skb, 2); len -= 2; @@ -3322,19 +3321,15 @@ static void bcmgenet_set_hw_params(struct bcmgenet_priv *priv) if (GENET_IS_V5(priv) || GENET_IS_V4(priv)) { bcmgenet_dma_regs = bcmgenet_dma_regs_v3plus; genet_dma_ring_regs = genet_dma_ring_regs_v4; - priv->dma_rx_chk_bit = DMA_RX_CHK_V3PLUS; } else if (GENET_IS_V3(priv)) { bcmgenet_dma_regs = bcmgenet_dma_regs_v3plus; genet_dma_ring_regs = genet_dma_ring_regs_v123; - priv->dma_rx_chk_bit = DMA_RX_CHK_V3PLUS; } else if (GENET_IS_V2(priv)) { bcmgenet_dma_regs = bcmgenet_dma_regs_v2; genet_dma_ring_regs = genet_dma_ring_regs_v123; - priv->dma_rx_chk_bit = DMA_RX_CHK_V12; } else if (GENET_IS_V1(priv)) { bcmgenet_dma_regs = bcmgenet_dma_regs_v1; genet_dma_ring_regs = genet_dma_ring_regs_v123; - priv->dma_rx_chk_bit = DMA_RX_CHK_V12; } /* enum genet_version starts at 1 */ diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.h b/drivers/net/ethernet/broadcom/genet/bcmgenet.h index a5659197598f..d33c0d093f82 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.h +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.h @@ -251,6 +251,7 @@ struct bcmgenet_mib_counters { #define RBUF_CHK_CTRL 0x14 #define RBUF_RXCHK_EN (1 << 0) #define RBUF_SKIP_FCS (1 << 4) +#define RBUF_L3_PARSE_DIS (1 << 5) #define RBUF_ENERGY_CTRL 0x9c #define RBUF_EEE_EN (1 << 0) @@ -663,7 +664,6 @@ struct bcmgenet_priv { bool desc_rxchk_en; bool crc_fwd_en; - unsigned int dma_rx_chk_bit; u32 dma_max_burst_length; u32 msg_enable; From patchwork Wed Dec 18 00:51:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211855 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=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="fbCiSFtY"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47cxKl1Trqz9sRl for ; Wed, 18 Dec 2019 11:51:55 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726882AbfLRAvw (ORCPT ); Tue, 17 Dec 2019 19:51:52 -0500 Received: from mail-pj1-f67.google.com ([209.85.216.67]:52486 "EHLO mail-pj1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726719AbfLRAva (ORCPT ); Tue, 17 Dec 2019 19:51:30 -0500 Received: by mail-pj1-f67.google.com with SMTP id w23so49622pjd.2; Tue, 17 Dec 2019 16:51:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=fCTHj12G+M+oIsAQ6yhmQ7Qk1y5dZl1KYqTEl/6R+Sg=; b=fbCiSFtYCJPgHlYavsvnPaltQBQgJTA9YysJkipxGAfk28wj2x0d8RyhUSLmyCnaZ1 0FntiolGQfXEuZDm23fgBpWJgpGsI7m8FktGskLAydxokxGpUzQLiiambFxMg0e7Vm/F nCowGQnme040klIdyNTAF7ZqA35lpKxNkM9oOSePe4GBOdVCut+gBUSMxSxiinhqPch5 sNBE2tR7/UxhBE0AwRNZYbIA5X0/vT8ycRVST0K5h6eFdFWCN7cBZiqhOz5OZhKDchBd S/GY23ofMg7X4/l3hwoGyiIJ0Fp0RFwyPdVOWELLF3II370l5l+OkoEULCII8n+kOeO+ A4fg== 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=fCTHj12G+M+oIsAQ6yhmQ7Qk1y5dZl1KYqTEl/6R+Sg=; b=s0QTwqw+w/8MUZxW8UZp03+NrQZ9F/bil1XHQs4pnpBjkoLXFb6UpGdagHoVHW/vbm T5h61YDRd3HZLgmbGYFRGBJlIgu8uwpnwJUh6JSFeQ6Xyf1zeoOhHYS/63D+Fjxt75z+ oCNOC2YNgP/JwWX2SRoVUPfR9RGQdUe8z0LFrYKv7rbFouT7h7JWP61hMls4LrGc2gmH U46eSIukUoOvf5R1RvYalqWEcAmuYr+tmpuRRC0w9vdbD9PYsa+yB2xJHA/5OuN9AycE savcu7nZs7t4Y85l57NIZiRPAlpz5ffCj4D5NsXKxxX7G7zvKQeL/w0gVs7DR3jpzy81 lHDA== X-Gm-Message-State: APjAAAUjGL3UXYV4Dv5ZIUk7WlMzYxz3H0Sw4B6r0OD1YE1KlpMBmbjt LywsqwE9ckGf0bZ8j0ex8n0= X-Google-Smtp-Source: APXvYqw7R14iRN1uZzAFinjzZOh3+ZENUAziYtOFEU3tIDRlliY37rT8j8adIwONHbUeFzO9ynQl9g== X-Received: by 2002:a17:90a:6:: with SMTP id 6mr193048pja.71.1576630289852; Tue, 17 Dec 2019 16:51:29 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 81sm274819pfx.30.2019.12.17.16.51.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 16:51:29 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next v2 4/8] net: bcmgenet: Refactor bcmgenet_set_features() Date: Tue, 17 Dec 2019 16:51:11 -0800 Message-Id: <1576630275-17591-5-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576630275-17591-1-git-send-email-opendmb@gmail.com> References: <1576630275-17591-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for unconditionally enabling TX and RX checksum offloads, refactor bcmgenet_set_features() a bit such that __netdev_update_features() during register_netdev() can make sure that features are correctly programmed during network device registration. Since we can now be called during register_netdev() with clocks gated, we need to temporarily turn them on/off in order to have a successful register programming. We also move the CRC forward setting read into bcmgenet_set_features() since priv->crc_fwd_en matters while turning on RX checksum offload, that way we are guaranteed they are in sync in case we ever add support for NETIF_F_RXFCS at some point in the future. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 38 +++++++++++++------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 13cbe5828adb..811713e3d230 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -508,8 +508,8 @@ static int bcmgenet_set_link_ksettings(struct net_device *dev, return phy_ethtool_ksettings_set(dev->phydev, cmd); } -static int bcmgenet_set_rx_csum(struct net_device *dev, - netdev_features_t wanted) +static void bcmgenet_set_rx_csum(struct net_device *dev, + netdev_features_t wanted) { struct bcmgenet_priv *priv = netdev_priv(dev); u32 rbuf_chk_ctrl; @@ -535,12 +535,10 @@ static int bcmgenet_set_rx_csum(struct net_device *dev, rbuf_chk_ctrl &= ~RBUF_SKIP_FCS; bcmgenet_rbuf_writel(priv, rbuf_chk_ctrl, RBUF_CHK_CTRL); - - return 0; } -static int bcmgenet_set_tx_csum(struct net_device *dev, - netdev_features_t wanted) +static void bcmgenet_set_tx_csum(struct net_device *dev, + netdev_features_t wanted) { struct bcmgenet_priv *priv = netdev_priv(dev); bool desc_64b_en; @@ -563,21 +561,27 @@ static int bcmgenet_set_tx_csum(struct net_device *dev, bcmgenet_tbuf_ctrl_set(priv, tbuf_ctrl); bcmgenet_rbuf_writel(priv, rbuf_ctrl, RBUF_CTRL); - - return 0; } static int bcmgenet_set_features(struct net_device *dev, netdev_features_t features) { - netdev_features_t changed = features ^ dev->features; - netdev_features_t wanted = dev->wanted_features; - int ret = 0; + struct bcmgenet_priv *priv = netdev_priv(dev); + u32 reg; + int ret; + + ret = clk_prepare_enable(priv->clk); + if (ret) + return ret; + + /* Make sure we reflect the value of CRC_CMD_FWD */ + reg = bcmgenet_umac_readl(priv, UMAC_CMD); + priv->crc_fwd_en = !!(reg & CMD_CRC_FWD); - if (changed & NETIF_F_HW_CSUM) - ret = bcmgenet_set_tx_csum(dev, wanted); - if (changed & (NETIF_F_RXCSUM)) - ret = bcmgenet_set_rx_csum(dev, wanted); + bcmgenet_set_tx_csum(dev, features); + bcmgenet_set_rx_csum(dev, features); + + clk_disable_unprepare(priv->clk); return ret; } @@ -2880,10 +2884,6 @@ static int bcmgenet_open(struct net_device *dev) init_umac(priv); - /* Make sure we reflect the value of CRC_CMD_FWD */ - reg = bcmgenet_umac_readl(priv, UMAC_CMD); - priv->crc_fwd_en = !!(reg & CMD_CRC_FWD); - bcmgenet_set_hw_addr(priv, dev->dev_addr); if (priv->internal_phy) { From patchwork Wed Dec 18 00:51:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211853 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=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="EaPlsDQb"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47cxKY0S3mz9sS6 for ; Wed, 18 Dec 2019 11:51:45 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726786AbfLRAvd (ORCPT ); Tue, 17 Dec 2019 19:51:33 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:35794 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726622AbfLRAvb (ORCPT ); Tue, 17 Dec 2019 19:51:31 -0500 Received: by mail-pf1-f196.google.com with SMTP id b19so217613pfo.2; Tue, 17 Dec 2019 16:51:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=JLVhcc9VMHoyHLdT46bTemZl3YozDpYDY3B3T/6/MFI=; b=EaPlsDQbiHPB5yqbOe203la7fBcV4w3x4L2rbh+pgliBiiX7bDksYdVvhVVUsKgVTJ AH0uqqOX9GMu6dGNS+YKsPdPnX/mpgPKYUsFa9T1t2x39BwOfRMVU27mmABfoyea3Uph iMMD4msoQ4sJjvPwWS19yMelLDoWN52xVA1xBh8hR2cLbnVaKHbSH5JWud0+eJJBaovw rAG3bZY1bRoLAS+Ow9UN6G3ltgFOptIG071t9bhgxLuByvrdwhpGK9uTksy4MNxxzpFI VfsUhQuTQjHtDbwLUmJ3CucuQoQnNFSehutZCEoy+GvSDAgcrKLo6SAapjm4a/tMypk+ K2aw== 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=JLVhcc9VMHoyHLdT46bTemZl3YozDpYDY3B3T/6/MFI=; b=MAqV7yFCPCUAS5s3p2CIghBR37UkesUQzG+gHqpZzoruWBCQ6alfdKRUAOqlZSlBiI GW6vtBn5lPWXNlxBESDdCBMEgKMUo2AsHVRJToYGw0K1kkf1kXFMhv6h9ulEPEsDGv1P I83QcO9MdxhhLtDDOI265rOKoNDLZZFe98I0lhrWlfZAGO/B1TY2E9crWC0Ayhs1O5H4 W/Rh7j8rAr/RHlQk+5gjJnuPbubtcgy3dqRUIisroEHhYOfyqXfN/Cb0aKOR0z9uQ0Jf xOjl/IXw5JcECOyRJBrtUcrTNfhDYsC5Na6/zMOX8ObY5BuoGe9VJbQpV9AQPMJ+2S1b qA1g== X-Gm-Message-State: APjAAAWHP/E1R0L6/8rMJFJDtXBnKT1msqVTL3EQR0C95T9ih7osrBgw hgvfHxTC046wiFGyelCndhk= X-Google-Smtp-Source: APXvYqyATA/5yWth8lWCDMpRJD/Y+3wdK5BSIpgNiPRXFyJA8BQkLrCvtySl4Te39OD/Fks73zKBOA== X-Received: by 2002:aa7:98d0:: with SMTP id e16mr663203pfm.77.1576630290713; Tue, 17 Dec 2019 16:51:30 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 81sm274819pfx.30.2019.12.17.16.51.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 16:51:30 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next v2 5/8] net: bcmgenet: Utilize bcmgenet_set_features() during resume/open Date: Tue, 17 Dec 2019 16:51:12 -0800 Message-Id: <1576630275-17591-6-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576630275-17591-1-git-send-email-opendmb@gmail.com> References: <1576630275-17591-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org During driver resume and open, the HW may have lost its context/state, utilize bcmgenet_set_features() to make sure we do restore the correct set of features that were previously configured. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 811713e3d230..0e57effd5b19 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -2884,6 +2884,11 @@ static int bcmgenet_open(struct net_device *dev) init_umac(priv); + /* Apply features again in case we changed them while interface was + * down + */ + bcmgenet_set_features(dev, dev->features); + bcmgenet_set_hw_addr(priv, dev->dev_addr); if (priv->internal_phy) { @@ -3687,6 +3692,9 @@ static int bcmgenet_resume(struct device *d) genphy_config_aneg(dev->phydev); bcmgenet_mii_config(priv->dev, false); + /* Restore enabled features */ + bcmgenet_set_features(dev, dev->features); + bcmgenet_set_hw_addr(priv, dev->dev_addr); if (priv->internal_phy) { From patchwork Wed Dec 18 00:51:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211854 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=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="F4dbjTCP"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47cxKf2X97z9sS6 for ; Wed, 18 Dec 2019 11:51:50 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726863AbfLRAvs (ORCPT ); Tue, 17 Dec 2019 19:51:48 -0500 Received: from mail-pg1-f195.google.com ([209.85.215.195]:37530 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726758AbfLRAvc (ORCPT ); Tue, 17 Dec 2019 19:51:32 -0500 Received: by mail-pg1-f195.google.com with SMTP id q127so266902pga.4; Tue, 17 Dec 2019 16:51:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=zyYDhbBHYvJZcIK28oQRV3QueIffU3NZ46cPVs6WCSA=; b=F4dbjTCPRYF+0mZOoHCvhPm/uD7JX9NaojKIPtOWYdTvdwtbuRnKbXj/HlcJPMGfDW VZrHY2dn9jKx/pr7Sl5oQb9XeTnobsZSHix1pqmp6vmALF9fe4M9x5IYIPLnEdyFLW5P 7260rwcnICRAP2Wt3MphO0avgiuaCeuGoxGZ2+8pWnJqe5x0xsRXY8op9cnKiKwYgIoC GcXnr3PHxeIIZpTsZEAmZ6AWXj8Se/fUkDNs8tiZl2D9xkxP8ZrfQlqEAaaDE/NGpJTU OmHQ/kaFKc6It7ifgfNg3sYcrVGHq8oZGAoS0Fqbrluvlc8OUxXqdfz2O/UmbZpSCx+u 2zmw== 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=zyYDhbBHYvJZcIK28oQRV3QueIffU3NZ46cPVs6WCSA=; b=BCftIUXhJbpUl74ADSB025ambbOzZmgeCqp7MnOIUjIasGvWul7lCqrGlm4JIIh27i QWiCxO6xaMGVZlqVrqNOrdLfbqs2ohO0Y5TZNPj7JwUUQh92nL51A2yBUtP7K+qQu2ZE i2KWUcZlVzLBodn33/uUrDE781AFmg8n/OtaU5hSX6dbZGRUWdg+xoxRnAAP+/DHygTv vyXNgFUFWNM3vTB+AXRj5S+h7FMJkR3x6koVoNhVTtiwV4b//RfB03uPRjmmgAwS0KBa n3bK3zuvteWv9nuuFhgi6KLdBqOESMZUnBPVI5Psvo7EHNvmbF5j+SVS8H07FGvXwl5Q QlsA== X-Gm-Message-State: APjAAAXTlbcgPkamUnCvpazifZAH6y8cWtEJ/aWt4uPr4z29qWfwHBuR JkD1PoTFi/2tB6OGsn6qt2w= X-Google-Smtp-Source: APXvYqziQZsXcOA+snrNlWN2e99nedKcHk53G1hf/HJ6kScHVkxYI4FMBamnRO68Um/mCpj+kR2wTQ== X-Received: by 2002:a62:1d52:: with SMTP id d79mr715735pfd.144.1576630291677; Tue, 17 Dec 2019 16:51:31 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 81sm274819pfx.30.2019.12.17.16.51.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 16:51:31 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next v2 6/8] net: bcmgenet: Turn on offloads by default Date: Tue, 17 Dec 2019 16:51:13 -0800 Message-Id: <1576630275-17591-7-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576630275-17591-1-git-send-email-opendmb@gmail.com> References: <1576630275-17591-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org We can turn on the RX/TX checksum offloads and the scatter/gather features by default and make sure that those are properly reflected back to e.g: stacked devices such as VLAN. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 0e57effd5b19..13e9154db253 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -3530,9 +3530,11 @@ static int bcmgenet_probe(struct platform_device *pdev) priv->msg_enable = netif_msg_init(-1, GENET_MSG_DEFAULT); - /* Set hardware features */ - dev->hw_features |= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | - NETIF_F_RXCSUM; + /* Set default features */ + dev->features |= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | + NETIF_F_RXCSUM; + dev->hw_features |= dev->features; + dev->vlan_features |= dev->features; /* Request the WOL interrupt and advertise suspend if available */ priv->wol_irq_disabled = true; From patchwork Wed Dec 18 00:51:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211851 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=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ih9cGawQ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47cxKQ2Y90z9sS3 for ; Wed, 18 Dec 2019 11:51:38 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726802AbfLRAve (ORCPT ); Tue, 17 Dec 2019 19:51:34 -0500 Received: from mail-pf1-f195.google.com ([209.85.210.195]:42688 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726776AbfLRAvd (ORCPT ); Tue, 17 Dec 2019 19:51:33 -0500 Received: by mail-pf1-f195.google.com with SMTP id 4so199201pfz.9; Tue, 17 Dec 2019 16:51:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=0fF3Pwrvb1XjAJmZpEQzz7NN6h0Qr1+USwjWNMBgsq4=; b=ih9cGawQB+5mXsRHPaE/Cnw6u9n+P13I4GrkYcSwFyTIrtVvAQWm7ify7SoNs9ROJ1 Kzb9XCQEx75vYSrrrEVQFS5FSMrYtNakG26XANZLJIiyJo4GpuoGiLo5GCXxLJ4HkQQu mPdYedFxQHdPBwV4BKmIRkJMhuMXDrzoRQiUigtteIon8L20xlnoCtMyLK4QKHUnZ1pO CVTE+8UED6KxBQ/a+Gzpltnm2okhX5Xzk2EjR0ZyInxqKf+VnK2aVUCjTb1jOmiVnBlF qNLu5GZr4qt87/uS/bl/Xri2FkwBUuJcMb6TA2nyCIiH7yl51P+9XbrgUXxc1jHu+Sqk /G/Q== 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=0fF3Pwrvb1XjAJmZpEQzz7NN6h0Qr1+USwjWNMBgsq4=; b=h3sU7q1CTCj5nqt80QbRm8hYjW7B2mFsyxpyx1yqGct2jFaoWFuCLgS+hH34YYAeGK US0G3ZRitf98Y/xYy4P6kBVd+7dQmyUWxJ+cVwHP1aB5LiJG0mKWtlEXHbzLEt5utNu0 9nE2DP16Hp6VOLEMmHSTBCjLwuW8DvQbU7Wkh4ES/R3atKblPohm1qGhXTp7dXqpDMdx RGPXKy9xYm6DEZHFPskYJTxyQ/Bh/MAkBhNLGnR+hHpAOv6+RmbMgmDXdKd7oFcfWDWk LJvnTQK9mdF8rpDkjHUThZKTByLLf/94njIXSbfaMDI244uozsJI3CoJUn2kjoB8rW1o wN4w== X-Gm-Message-State: APjAAAW1n3aW2ecwJmiP0urZLwAXrTznpmVLJLH/Lyv7t+RngrCHWqHF PM4UFiS/pbIW28yZ7KFI5IqF1/qT X-Google-Smtp-Source: APXvYqxRbslnVaiEfFed8OBAvigKprORjy+4ApV7ny1p4NETQVzemdSZRgcIfZAAVlsesJtp7f986g== X-Received: by 2002:a62:6342:: with SMTP id x63mr672963pfb.103.1576630292413; Tue, 17 Dec 2019 16:51:32 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 81sm274819pfx.30.2019.12.17.16.51.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 16:51:32 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next v2 7/8] net: bcmgenet: Be drop monitor friendly while re-allocating headroom Date: Tue, 17 Dec 2019 16:51:14 -0800 Message-Id: <1576630275-17591-8-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576630275-17591-1-git-send-email-opendmb@gmail.com> References: <1576630275-17591-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org During bcmgenet_put_tx_csum() make sure we differentiate a SKB headroom re-allocation failure from the normal swap and replace path. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 13e9154db253..e2bca19bf10b 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -1499,11 +1499,12 @@ static struct sk_buff *bcmgenet_put_tx_csum(struct net_device *dev, * enough headroom for us to insert 64B status block. */ new_skb = skb_realloc_headroom(skb, sizeof(*status)); - dev_kfree_skb(skb); if (!new_skb) { + dev_kfree_skb_any(skb); dev->stats.tx_dropped++; return NULL; } + dev_consume_skb_any(skb); skb = new_skb; } From patchwork Wed Dec 18 00:51:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211852 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=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="qmW/1GT7"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47cxKV2Ycbz9sS6 for ; Wed, 18 Dec 2019 11:51:42 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726842AbfLRAvj (ORCPT ); Tue, 17 Dec 2019 19:51:39 -0500 Received: from mail-pf1-f194.google.com ([209.85.210.194]:38727 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726797AbfLRAve (ORCPT ); Tue, 17 Dec 2019 19:51:34 -0500 Received: by mail-pf1-f194.google.com with SMTP id x185so210465pfc.5; Tue, 17 Dec 2019 16:51:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=lIjsvF9IAOKO/y9eAPFaGirPoWCV8dxZZXU9yHmkvfQ=; b=qmW/1GT7rwoMEFROf0tuZO/TNcV775jnRSkCS+it7yLw59eK7Y1L43a+g6+fLSWG9b SWv1c8DzoiqPdynrpgYLWmcUPh6EUkPbVBmWbnp4VvVkeXaTRdvypbgwk+TG/V6NBR2h b4jZ3BoJGQh2iGNuM5aBYvvPV8DSFCcFgL2XpTuONZn5Q8QQ9CzoCnC0uUhNrdRtSPua VAnHhXdl4U1HGS9EnUOW64gVihWaQUfx3RNom3BE9YmDhompVgHI7F1M+2VKKbiQOZdg SITxEV5bTN1gKcRlL4xJids5KsCKftXxWUeVjCLpWp9uPjVsUmPi+QNMip5j5b1Jbnx3 OtdA== 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=lIjsvF9IAOKO/y9eAPFaGirPoWCV8dxZZXU9yHmkvfQ=; b=UsZi+e9/vZhtfYUPmfPFqOwx44ixKn1AOgRQgpHyB0E9CrZf9Q8BRZlu5jHV7XKmzy L8Rf2W3yfHiFC2DpY7X3oM/1X576I/vdvRynnzFHN8dQKSABg9dw7uGdajtEDFRHxn/J ieEUZHr4FD4HjoyGITkEy4gKm224gg4BwbupdQRihfgcKIRe3RdqJPWASQ2yyxjePG5G ICLS+0DALA9TDUjEV97r/EWbMaq6Nz9J+UYBfhCzVDsvokNQEW9LdhbCGFeezdB1AQPb XkXKFMcH/DDKrrCrM5YmY8smQa6weVwyXAGKVocwobpXjExhlMxB6Dz2EUN2JbBXCUP+ fSYg== X-Gm-Message-State: APjAAAUsBtzsfJN67l+Y79SDAmQrN9DvV1fUM+N3Hpix33rUM+WySvcF 3N/rbDpJtguBXKY4CWI085A= X-Google-Smtp-Source: APXvYqwKGOZaAQfUtUBJtD/vxKXoV8SgggpyDu6VySrj1IUnPf+QUgUexIcyJuZXBY/qUmNXPbGJ2w== X-Received: by 2002:a63:5b0a:: with SMTP id p10mr871386pgb.228.1576630293350; Tue, 17 Dec 2019 16:51:33 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id 81sm274819pfx.30.2019.12.17.16.51.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 16:51:33 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next v2 8/8] net: bcmgenet: Add software counters to track reallocations Date: Tue, 17 Dec 2019 16:51:15 -0800 Message-Id: <1576630275-17591-9-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576630275-17591-1-git-send-email-opendmb@gmail.com> References: <1576630275-17591-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When inserting the TSB, keep track of how many times we had to do it and if there was a failure in doing so, this helps profile the driver for possibly incorrect headroom settings. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 6 ++++++ drivers/net/ethernet/broadcom/genet/bcmgenet.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index e2bca19bf10b..3ee7917e3fc0 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -861,6 +861,9 @@ static const struct bcmgenet_stats bcmgenet_gstrings_stats[] = { STAT_GENET_SOFT_MIB("alloc_rx_buff_failed", mib.alloc_rx_buff_failed), STAT_GENET_SOFT_MIB("rx_dma_failed", mib.rx_dma_failed), STAT_GENET_SOFT_MIB("tx_dma_failed", mib.tx_dma_failed), + STAT_GENET_SOFT_MIB("tx_realloc_tsb", mib.tx_realloc_tsb), + STAT_GENET_SOFT_MIB("tx_realloc_tsb_failed", + mib.tx_realloc_tsb_failed), /* Per TX queues */ STAT_GENET_Q(0), STAT_GENET_Q(1), @@ -1487,6 +1490,7 @@ static void bcmgenet_tx_reclaim_all(struct net_device *dev) static struct sk_buff *bcmgenet_put_tx_csum(struct net_device *dev, struct sk_buff *skb) { + struct bcmgenet_priv *priv = netdev_priv(dev); struct status_64 *status = NULL; struct sk_buff *new_skb; u16 offset; @@ -1501,11 +1505,13 @@ static struct sk_buff *bcmgenet_put_tx_csum(struct net_device *dev, new_skb = skb_realloc_headroom(skb, sizeof(*status)); if (!new_skb) { dev_kfree_skb_any(skb); + priv->mib.tx_realloc_tsb_failed++; dev->stats.tx_dropped++; return NULL; } dev_consume_skb_any(skb); skb = new_skb; + priv->mib.tx_realloc_tsb++; } skb_push(skb, sizeof(*status)); diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.h b/drivers/net/ethernet/broadcom/genet/bcmgenet.h index d33c0d093f82..61a6fe9f4cec 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.h +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.h @@ -144,6 +144,8 @@ struct bcmgenet_mib_counters { u32 alloc_rx_buff_failed; u32 rx_dma_failed; u32 tx_dma_failed; + u32 tx_realloc_tsb; + u32 tx_realloc_tsb_failed; }; #define UMAC_HD_BKP_CTRL 0x004