From patchwork Thu Jan 7 15:36:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ioana Ciornei X-Patchwork-Id: 12004369 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HK_RANDOM_FROM,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 569FEC433E0 for ; Thu, 7 Jan 2021 15:38:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 25DF523437 for ; Thu, 7 Jan 2021 15:38:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728235AbhAGPiY (ORCPT ); Thu, 7 Jan 2021 10:38:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38792 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725894AbhAGPiW (ORCPT ); Thu, 7 Jan 2021 10:38:22 -0500 Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A690C0612F6 for ; Thu, 7 Jan 2021 07:37:42 -0800 (PST) Received: by mail-ej1-x62b.google.com with SMTP id ga15so10304861ejb.4 for ; Thu, 07 Jan 2021 07:37:42 -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 :mime-version:content-transfer-encoding; bh=LCWZmcqRmC8Gz6Tjh/la+59tBRkXsSvxjFWfB9CbUDs=; b=Yqp/X2UBbKpOnWhPBhs4Exm9rHocqwXqmWAXm9iuKK0DX95bsPQDFNYIqVkoS9w7lI PJ5ZZG79kRENJqQPzDK4ydDFCrz8wVOJgiAoVR0wySCJWwtmrrcCZFLmbH3zgIIQuTP2 lcx2Dyv1NGG6fg4yOFe+aUqq7MwdGo1eVcUGjlmoO1yVrXI4thHnVgb3VdZ+H8vSYft6 lohxx2I+kWsCk/Rh+gJNPpkD335MUbWYLCjKWGo0GilDdY8+7lVv5QNQmN6cUT112ckV Rfnb3qbCzGjvSevBaudvZASR50H91CS4HRa497K8W0lnipiz6WSeLLJbRqzXrB0GrB4a TEyw== 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:mime-version:content-transfer-encoding; bh=LCWZmcqRmC8Gz6Tjh/la+59tBRkXsSvxjFWfB9CbUDs=; b=o/OD1KpAaxSgW8mkL2aT3Pn4DKOD7c8RrEYGZ0/OJM5OVajmdOb1YG3ugKeaJAnB0z wdko8DPSeKEtHuSRuYAbzFC59ubPcVRdzkwV26iQnXB6C1EKKgwNmZdy1c0bspWMzsZi gdeIPX/PSJ2ZWKL2HgqPcXUGb4xoqxY/tw/xWNsdNAO6h1b+1KJg9vZbwyyqmqnNPCWj e0CaQF+ysuNNL1p52Fty7IW9pa/s42qaaUh8nWav5kFgyV9iRELb/lngSUeaUzOL8yt3 UuuRSUFWtwCW9MtDQousulqN3ctsFkzuF3/B13RxhY3qlMS2nyaRlXahxIgp5IqdNVEA JuHQ== X-Gm-Message-State: AOAM531nE9xBzS31JdKAChvB/pDVtx0ApT2qX8lBI6czcSD9dAekbxtd +SUmKIost7jwOvvWcJyFnT0= X-Google-Smtp-Source: ABdhPJzaKLrnPjNF4hlAToRtSr+akjpuufgGnYEeIX+Y00ybQsAUl4D59YIfkBg5NMV75+N9HF+zGA== X-Received: by 2002:a17:906:229a:: with SMTP id p26mr6778516eja.291.1610033861127; Thu, 07 Jan 2021 07:37:41 -0800 (PST) Received: from yoga-910.localhost (5-12-227-87.residential.rdsnet.ro. [5.12.227.87]) by smtp.gmail.com with ESMTPSA id z9sm2574898eju.123.2021.01.07.07.37.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Jan 2021 07:37:40 -0800 (PST) From: Ioana Ciornei To: davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org Cc: laurentiu.tudor@nxp.com, Ioana Ciornei Subject: [PATCH 1/6] dpaa2-mac: split up initializing the MAC object from connecting to it Date: Thu, 7 Jan 2021 17:36:33 +0200 Message-Id: <20210107153638.753942-2-ciorneiioana@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210107153638.753942-1-ciorneiioana@gmail.com> References: <20210107153638.753942-1-ciorneiioana@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Ioana Ciornei Split up the initialization phase of the dpmac object from actually configuring the phylink instance, connecting to it and configuring the MAC. This is done so that even though the dpni object is connected to a dpmac which has link management handled by the firmware we are still able to export the MAC counters. Signed-off-by: Ioana Ciornei --- .../net/ethernet/freescale/dpaa2/dpaa2-eth.c | 14 +++- .../net/ethernet/freescale/dpaa2/dpaa2-mac.c | 68 +++++++++++-------- .../net/ethernet/freescale/dpaa2/dpaa2-mac.h | 5 ++ 3 files changed, 58 insertions(+), 29 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c index fb0bcd18ec0c..61385894e8c7 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c @@ -4056,15 +4056,24 @@ static int dpaa2_eth_connect_mac(struct dpaa2_eth_priv *priv) mac->mc_io = priv->mc_io; mac->net_dev = priv->net_dev; + err = dpaa2_mac_open(mac); + if (err) + goto err_free_mac; + err = dpaa2_mac_connect(mac); if (err) { netdev_err(priv->net_dev, "Error connecting to the MAC endpoint\n"); - kfree(mac); - return err; + goto err_close_mac; } priv->mac = mac; return 0; + +err_close_mac: + dpaa2_mac_close(mac); +err_free_mac: + kfree(mac); + return err; } static void dpaa2_eth_disconnect_mac(struct dpaa2_eth_priv *priv) @@ -4073,6 +4082,7 @@ static void dpaa2_eth_disconnect_mac(struct dpaa2_eth_priv *priv) return; dpaa2_mac_disconnect(priv->mac); + dpaa2_mac_close(priv->mac); kfree(priv->mac); priv->mac = NULL; } diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c index 828c177df03d..b97a219878c0 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c @@ -302,36 +302,20 @@ static void dpaa2_pcs_destroy(struct dpaa2_mac *mac) int dpaa2_mac_connect(struct dpaa2_mac *mac) { - struct fsl_mc_device *dpmac_dev = mac->mc_dev; struct net_device *net_dev = mac->net_dev; struct device_node *dpmac_node; struct phylink *phylink; - struct dpmac_attr attr; int err; - err = dpmac_open(mac->mc_io, 0, dpmac_dev->obj_desc.id, - &dpmac_dev->mc_handle); - if (err || !dpmac_dev->mc_handle) { - netdev_err(net_dev, "dpmac_open() = %d\n", err); - return -ENODEV; - } - - err = dpmac_get_attributes(mac->mc_io, 0, dpmac_dev->mc_handle, &attr); - if (err) { - netdev_err(net_dev, "dpmac_get_attributes() = %d\n", err); - goto err_close_dpmac; - } - - mac->if_link_type = attr.link_type; + mac->if_link_type = mac->attr.link_type; - dpmac_node = dpaa2_mac_get_node(attr.id); + dpmac_node = dpaa2_mac_get_node(mac->attr.id); if (!dpmac_node) { - netdev_err(net_dev, "No dpmac@%d node found.\n", attr.id); - err = -ENODEV; - goto err_close_dpmac; + netdev_err(net_dev, "No dpmac@%d node found.\n", mac->attr.id); + return -ENODEV; } - err = dpaa2_mac_get_if_mode(dpmac_node, attr); + err = dpaa2_mac_get_if_mode(dpmac_node, mac->attr); if (err < 0) { err = -EINVAL; goto err_put_node; @@ -351,9 +335,9 @@ int dpaa2_mac_connect(struct dpaa2_mac *mac) goto err_put_node; } - if (attr.link_type == DPMAC_LINK_TYPE_PHY && - attr.eth_if != DPMAC_ETH_IF_RGMII) { - err = dpaa2_pcs_create(mac, dpmac_node, attr.id); + if (mac->attr.link_type == DPMAC_LINK_TYPE_PHY && + mac->attr.eth_if != DPMAC_ETH_IF_RGMII) { + err = dpaa2_pcs_create(mac, dpmac_node, mac->attr.id); if (err) goto err_put_node; } @@ -389,8 +373,7 @@ int dpaa2_mac_connect(struct dpaa2_mac *mac) dpaa2_pcs_destroy(mac); err_put_node: of_node_put(dpmac_node); -err_close_dpmac: - dpmac_close(mac->mc_io, 0, dpmac_dev->mc_handle); + return err; } @@ -402,8 +385,39 @@ void dpaa2_mac_disconnect(struct dpaa2_mac *mac) phylink_disconnect_phy(mac->phylink); phylink_destroy(mac->phylink); dpaa2_pcs_destroy(mac); +} + +int dpaa2_mac_open(struct dpaa2_mac *mac) +{ + struct fsl_mc_device *dpmac_dev = mac->mc_dev; + struct net_device *net_dev = mac->net_dev; + int err; + + err = dpmac_open(mac->mc_io, 0, dpmac_dev->obj_desc.id, + &dpmac_dev->mc_handle); + if (err || !dpmac_dev->mc_handle) { + netdev_err(net_dev, "dpmac_open() = %d\n", err); + return -ENODEV; + } + + err = dpmac_get_attributes(mac->mc_io, 0, dpmac_dev->mc_handle, &mac->attr); + if (err) { + netdev_err(net_dev, "dpmac_get_attributes() = %d\n", err); + goto err_close_dpmac; + } + + return 0; + +err_close_dpmac: + dpmac_close(mac->mc_io, 0, dpmac_dev->mc_handle); + return err; +} + +void dpaa2_mac_close(struct dpaa2_mac *mac) +{ + struct fsl_mc_device *dpmac_dev = mac->mc_dev; - dpmac_close(mac->mc_io, 0, mac->mc_dev->mc_handle); + dpmac_close(mac->mc_io, 0, dpmac_dev->mc_handle); } static char dpaa2_mac_ethtool_stats[][ETH_GSTRING_LEN] = { diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.h b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.h index 955a52856210..13d42dd58ec9 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.h +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.h @@ -17,6 +17,7 @@ struct dpaa2_mac { struct dpmac_link_state state; struct net_device *net_dev; struct fsl_mc_io *mc_io; + struct dpmac_attr attr; struct phylink_config phylink_config; struct phylink *phylink; @@ -28,6 +29,10 @@ struct dpaa2_mac { bool dpaa2_mac_is_type_fixed(struct fsl_mc_device *dpmac_dev, struct fsl_mc_io *mc_io); +int dpaa2_mac_open(struct dpaa2_mac *mac); + +void dpaa2_mac_close(struct dpaa2_mac *mac); + int dpaa2_mac_connect(struct dpaa2_mac *mac); void dpaa2_mac_disconnect(struct dpaa2_mac *mac); From patchwork Thu Jan 7 15:36:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ioana Ciornei X-Patchwork-Id: 12004373 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HK_RANDOM_FROM,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 72673C433E6 for ; Thu, 7 Jan 2021 15:38:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3C1EE2343B for ; Thu, 7 Jan 2021 15:38:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728401AbhAGPi2 (ORCPT ); Thu, 7 Jan 2021 10:38:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38798 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725894AbhAGPiY (ORCPT ); Thu, 7 Jan 2021 10:38:24 -0500 Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 99AFBC0612F8 for ; Thu, 7 Jan 2021 07:37:43 -0800 (PST) Received: by mail-ej1-x62c.google.com with SMTP id b9so10367472ejy.0 for ; Thu, 07 Jan 2021 07:37:43 -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 :mime-version:content-transfer-encoding; bh=pYFCj7djd4A2BSCjdkVtuoc6GbJOOFxQ9dbNv6jIJgw=; b=ZFGLbRirF7S+JFTV7PeT9eg5YtSHkZEeVHWeavYK2TzDuwJvpMbdASpPlojSneK52j hp+mE0smqYnz3G3ZfO3r0ipBAdigjGaWIDnNrARS568dNiGcasNTY/3Ten0Erx6w/ioe OXFPv5rI/IkYikf0FuvMub+uZgEbqoL8liujMGIh66pXBTB6tdFOzHSB1LA/TpLxlJYx bTF758Bbyss4Cq6QI0nZmtFXT0JXaZdh3tNpIg2lVwd1kg6y+o52YnetDz9P1XtlJi7O mM+YUJAyQAuh5wnIvqyEOyP8rcLTtzkHqBBHdIJkfjtLmYRBOOx7HQovxXIjYRR0r5dm lPNA== 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:mime-version:content-transfer-encoding; bh=pYFCj7djd4A2BSCjdkVtuoc6GbJOOFxQ9dbNv6jIJgw=; b=hTcWtehqNb5FsdNjEpunE81C0cqpe+Y2SXdHMEuwdhCCF8evFdMsXGChJsQpYe2oJS hWvcps1D9Gvys5y8WTfD8UEMwLoGEHWdiVjBs1CUQtVPWBSqRiGAbSdJ893RuebZwq04 Mx6aNrjdaSdDEiukBV/XM30RqlgaX6tDKVX2lWqV1OB/z0zhSmwxF9dlc17LqJKReNkk FMSWMWxYI+5NevQ3mUfxZLIBVSCdv9c+a3a8BYVQxVgzFPviL4JoyXB5jc70Ukm0s0uS wXjCOs3bqzjHfefh2sJizaOC9szGdvcr5k6qP8x31e+gHkapJoLv9nl54WY6FDgIpL1r fwBw== X-Gm-Message-State: AOAM530VtHxjAfcbOa5lIgDQnvSy5096zQKmnhK7/2qcbV6vNvDxRz1/ sk49E1tBKnJbXsvnoiu/XM0= X-Google-Smtp-Source: ABdhPJyNXPMN9SBtcoA/9gjj4eY76Azf89BykhinX7FNsTu9aIuqNJ3i36BhOM1XxdpMe6CIQ6yg7A== X-Received: by 2002:a17:906:f8d4:: with SMTP id lh20mr6837673ejb.442.1610033862314; Thu, 07 Jan 2021 07:37:42 -0800 (PST) Received: from yoga-910.localhost (5-12-227-87.residential.rdsnet.ro. [5.12.227.87]) by smtp.gmail.com with ESMTPSA id z9sm2574898eju.123.2021.01.07.07.37.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Jan 2021 07:37:41 -0800 (PST) From: Ioana Ciornei To: davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org Cc: laurentiu.tudor@nxp.com, Ioana Ciornei Subject: [PATCH 2/6] dpaa2-mac: export MAC counters even when in TYPE_FIXED Date: Thu, 7 Jan 2021 17:36:34 +0200 Message-Id: <20210107153638.753942-3-ciorneiioana@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210107153638.753942-1-ciorneiioana@gmail.com> References: <20210107153638.753942-1-ciorneiioana@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Ioana Ciornei If the network interface object is connected to a MAC of TYPE_FIXED, the link status management is handled exclusively by the firmware. This does not mean that the driver cannot access the MAC counters and export them in ethtool. For this to happen, we open the attached dpmac device and keep a pointer to it in priv->mac. Because of this, all the checks in the driver of the following form 'if (priv->mac)' have to be updated to actually check the dpmac attribute and not rely on the presence of a non-NULL value. Signed-off-by: Ioana Ciornei --- .../net/ethernet/freescale/dpaa2/dpaa2-eth.c | 37 +++++++++---------- .../net/ethernet/freescale/dpaa2/dpaa2-eth.h | 13 +++++++ .../ethernet/freescale/dpaa2/dpaa2-ethtool.c | 16 ++++---- .../net/ethernet/freescale/dpaa2/dpaa2-mac.c | 26 ------------- 4 files changed, 39 insertions(+), 53 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c index 61385894e8c7..f3f53e36aa00 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c @@ -1691,7 +1691,7 @@ static int dpaa2_eth_link_state_update(struct dpaa2_eth_priv *priv) /* When we manage the MAC/PHY using phylink there is no need * to manually update the netif_carrier. */ - if (priv->mac) + if (dpaa2_eth_is_type_phy(priv)) goto out; /* Chech link state; speed / duplex changes are not treated yet */ @@ -1730,7 +1730,7 @@ static int dpaa2_eth_open(struct net_device *net_dev) priv->dpbp_dev->obj_desc.id, priv->bpid); } - if (!priv->mac) { + if (!dpaa2_eth_is_type_phy(priv)) { /* We'll only start the txqs when the link is actually ready; * make sure we don't race against the link up notification, * which may come immediately after dpni_enable(); @@ -1752,7 +1752,7 @@ static int dpaa2_eth_open(struct net_device *net_dev) goto enable_err; } - if (priv->mac) + if (dpaa2_eth_is_type_phy(priv)) phylink_start(priv->mac->phylink); return 0; @@ -1826,11 +1826,11 @@ static int dpaa2_eth_stop(struct net_device *net_dev) int dpni_enabled = 0; int retries = 10; - if (!priv->mac) { + if (dpaa2_eth_is_type_phy(priv)) { + phylink_stop(priv->mac->phylink); + } else { netif_tx_stop_all_queues(net_dev); netif_carrier_off(net_dev); - } else { - phylink_stop(priv->mac->phylink); } /* On dpni_disable(), the MC firmware will: @@ -2115,7 +2115,7 @@ static int dpaa2_eth_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) if (cmd == SIOCSHWTSTAMP) return dpaa2_eth_ts_ioctl(dev, rq, cmd); - if (priv->mac) + if (dpaa2_eth_is_type_phy(priv)) return phylink_mii_ioctl(priv->mac->phylink, rq, cmd); return -EOPNOTSUPP; @@ -4045,9 +4045,6 @@ static int dpaa2_eth_connect_mac(struct dpaa2_eth_priv *priv) if (IS_ERR_OR_NULL(dpmac_dev) || dpmac_dev->dev.type != &fsl_mc_bus_dpmac_type) return 0; - if (dpaa2_mac_is_type_fixed(dpmac_dev, priv->mc_io)) - return 0; - mac = kzalloc(sizeof(struct dpaa2_mac), GFP_KERNEL); if (!mac) return -ENOMEM; @@ -4059,18 +4056,21 @@ static int dpaa2_eth_connect_mac(struct dpaa2_eth_priv *priv) err = dpaa2_mac_open(mac); if (err) goto err_free_mac; + priv->mac = mac; - err = dpaa2_mac_connect(mac); - if (err) { - netdev_err(priv->net_dev, "Error connecting to the MAC endpoint\n"); - goto err_close_mac; + if (dpaa2_eth_is_type_phy(priv)) { + err = dpaa2_mac_connect(mac); + if (err) { + netdev_err(priv->net_dev, "Error connecting to the MAC endpoint\n"); + goto err_close_mac; + } } - priv->mac = mac; return 0; err_close_mac: dpaa2_mac_close(mac); + priv->mac = NULL; err_free_mac: kfree(mac); return err; @@ -4078,10 +4078,9 @@ static int dpaa2_eth_connect_mac(struct dpaa2_eth_priv *priv) static void dpaa2_eth_disconnect_mac(struct dpaa2_eth_priv *priv) { - if (!priv->mac) - return; + if (dpaa2_eth_is_type_phy(priv)) + dpaa2_mac_disconnect(priv->mac); - dpaa2_mac_disconnect(priv->mac); dpaa2_mac_close(priv->mac); kfree(priv->mac); priv->mac = NULL; @@ -4111,7 +4110,7 @@ static irqreturn_t dpni_irq0_handler_thread(int irq_num, void *arg) dpaa2_eth_update_tx_fqids(priv); rtnl_lock(); - if (priv->mac) + if (dpaa2_eth_has_mac(priv)) dpaa2_eth_disconnect_mac(priv); else dpaa2_eth_connect_mac(priv); diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h index d236b8695c39..c3d456c45102 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h @@ -693,6 +693,19 @@ static inline unsigned int dpaa2_eth_rx_head_room(struct dpaa2_eth_priv *priv) return priv->tx_data_offset - DPAA2_ETH_RX_HWA_SIZE; } +static inline bool dpaa2_eth_is_type_phy(struct dpaa2_eth_priv *priv) +{ + if (priv->mac && priv->mac->attr.link_type == DPMAC_LINK_TYPE_PHY) + return true; + + return false; +} + +static inline bool dpaa2_eth_has_mac(struct dpaa2_eth_priv *priv) +{ + return priv->mac ? true : false; +} + int dpaa2_eth_set_hash(struct net_device *net_dev, u64 flags); int dpaa2_eth_set_cls(struct net_device *net_dev, u64 key); int dpaa2_eth_cls_key_size(u64 key); diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c index f981a523e13a..bf59708b869e 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-ethtool.c @@ -85,7 +85,7 @@ static int dpaa2_eth_nway_reset(struct net_device *net_dev) { struct dpaa2_eth_priv *priv = netdev_priv(net_dev); - if (priv->mac) + if (dpaa2_eth_is_type_phy(priv)) return phylink_ethtool_nway_reset(priv->mac->phylink); return -EOPNOTSUPP; @@ -97,7 +97,7 @@ dpaa2_eth_get_link_ksettings(struct net_device *net_dev, { struct dpaa2_eth_priv *priv = netdev_priv(net_dev); - if (priv->mac) + if (dpaa2_eth_is_type_phy(priv)) return phylink_ethtool_ksettings_get(priv->mac->phylink, link_settings); @@ -115,7 +115,7 @@ dpaa2_eth_set_link_ksettings(struct net_device *net_dev, { struct dpaa2_eth_priv *priv = netdev_priv(net_dev); - if (!priv->mac) + if (!dpaa2_eth_is_type_phy(priv)) return -ENOTSUPP; return phylink_ethtool_ksettings_set(priv->mac->phylink, link_settings); @@ -127,7 +127,7 @@ static void dpaa2_eth_get_pauseparam(struct net_device *net_dev, struct dpaa2_eth_priv *priv = netdev_priv(net_dev); u64 link_options = priv->link_state.options; - if (priv->mac) { + if (dpaa2_eth_is_type_phy(priv)) { phylink_ethtool_get_pauseparam(priv->mac->phylink, pause); return; } @@ -150,7 +150,7 @@ static int dpaa2_eth_set_pauseparam(struct net_device *net_dev, return -EOPNOTSUPP; } - if (priv->mac) + if (dpaa2_eth_is_type_phy(priv)) return phylink_ethtool_set_pauseparam(priv->mac->phylink, pause); if (pause->autoneg) @@ -198,7 +198,7 @@ static void dpaa2_eth_get_strings(struct net_device *netdev, u32 stringset, strlcpy(p, dpaa2_ethtool_extras[i], ETH_GSTRING_LEN); p += ETH_GSTRING_LEN; } - if (priv->mac) + if (dpaa2_eth_has_mac(priv)) dpaa2_mac_get_strings(p); break; } @@ -211,7 +211,7 @@ static int dpaa2_eth_get_sset_count(struct net_device *net_dev, int sset) switch (sset) { case ETH_SS_STATS: /* ethtool_get_stats(), ethtool_get_drvinfo() */ - if (priv->mac) + if (dpaa2_eth_has_mac(priv)) num_ss_stats += dpaa2_mac_get_sset_count(); return num_ss_stats; default: @@ -313,7 +313,7 @@ static void dpaa2_eth_get_ethtool_stats(struct net_device *net_dev, } *(data + i++) = buf_cnt; - if (priv->mac) + if (dpaa2_eth_has_mac(priv)) dpaa2_mac_get_ethtool_stats(priv->mac, data + i); } diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c index b97a219878c0..666bc88c178f 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c @@ -228,32 +228,6 @@ static const struct phylink_mac_ops dpaa2_mac_phylink_ops = { .mac_link_down = dpaa2_mac_link_down, }; -bool dpaa2_mac_is_type_fixed(struct fsl_mc_device *dpmac_dev, - struct fsl_mc_io *mc_io) -{ - struct dpmac_attr attr; - bool fixed = false; - u16 mc_handle = 0; - int err; - - err = dpmac_open(mc_io, 0, dpmac_dev->obj_desc.id, - &mc_handle); - if (err || !mc_handle) - return false; - - err = dpmac_get_attributes(mc_io, 0, mc_handle, &attr); - if (err) - goto out; - - if (attr.link_type == DPMAC_LINK_TYPE_FIXED) - fixed = true; - -out: - dpmac_close(mc_io, 0, mc_handle); - - return fixed; -} - static int dpaa2_pcs_create(struct dpaa2_mac *mac, struct device_node *dpmac_node, int id) { From patchwork Thu Jan 7 15:36:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ioana Ciornei X-Patchwork-Id: 12004371 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HK_RANDOM_FROM,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7CDB7C433E9 for ; Thu, 7 Jan 2021 15:38:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5598B23433 for ; Thu, 7 Jan 2021 15:38:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728421AbhAGPia (ORCPT ); Thu, 7 Jan 2021 10:38:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38804 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728247AbhAGPiZ (ORCPT ); Thu, 7 Jan 2021 10:38:25 -0500 Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BBF3BC0612F9 for ; Thu, 7 Jan 2021 07:37:44 -0800 (PST) Received: by mail-ej1-x62c.google.com with SMTP id x16so10254167ejj.7 for ; Thu, 07 Jan 2021 07:37:44 -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 :mime-version:content-transfer-encoding; bh=TCxzvGRbgdBxPdypTtsZODIieRrBvW9w1PjIUGFgh4s=; b=SrOZv+6LIg/ixcfcApkTH5OzAfSh6ZTkvHE/1kxjx9F7LN81bNgVuvf+JXJz0idtBU KIbK0FidQYAYiFL0A5K3soelgBugdj8bW8aUOg3vUWQ39AJSJETZB3F0WMNxXq9/8EHa Fi9vkVfVDC5b9kpUQHh+UU7hOChzD8ETAVFckZkuOFXBe9xL5dIfvEHpxidgMRc7X2cq rQnNSRmermRWA94FDIJpAQfoKlEQjDWvngmn2GpOKaKkkuQZtgE7XWCUfSMb6jovJCDX EGEMU93yFnwegmQ9CRJK3kZ4J9wsycoYSAN7fc7Hw1N7cE581zyanpQxt7dG0xPkivME vkwg== 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:mime-version:content-transfer-encoding; bh=TCxzvGRbgdBxPdypTtsZODIieRrBvW9w1PjIUGFgh4s=; b=FOWHdxb59iOPC8XUiRO+LMNqcToRLU8JGvzApOaAnvxhI5PEvhICVKOcj8A2z027R7 7uSXfu9QcYEAn6dCPJ95pd+pGhpzUz1xOHtfvYpr2ct73HDF3A7GCPnHnGonFpUxHxTh xEvT5EgXSQpgxFTYjIo3cKoFminhbXmP9FArAOuewZJPaxqGLnLBi8cBCXZYYMrCj6zF 8wK1LEJZFd/jMD9pPO2x+ABobMYLEj9bDCYipQKKcXexLm1GCFD6ERQfVvmxZTrHshsT Sb+LGtZYP8F6wb9PdBUUK6VkgqcoUlPeQ7fGxFq4yGZU7fYjSepKXvwtJjPbslDxIuuY oT+Q== X-Gm-Message-State: AOAM532WLBPxF+I9/CwlLFdeEXvgjQDTkm4dBe2c0TmN2YP86xbI0HCd VGPElMIh+xn2HsAmq1pS6mc= X-Google-Smtp-Source: ABdhPJwBSI/UQ9yk55R06dia0e+2Z4+kPPd/9wpFULAHmfB79J5cyEXuadpzQTwM1aISYyN06OjXIA== X-Received: by 2002:a17:906:3513:: with SMTP id r19mr6559246eja.445.1610033863543; Thu, 07 Jan 2021 07:37:43 -0800 (PST) Received: from yoga-910.localhost (5-12-227-87.residential.rdsnet.ro. [5.12.227.87]) by smtp.gmail.com with ESMTPSA id z9sm2574898eju.123.2021.01.07.07.37.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Jan 2021 07:37:43 -0800 (PST) From: Ioana Ciornei To: davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org Cc: laurentiu.tudor@nxp.com, Ioana Ciornei Subject: [PATCH 3/6] bus: fsl-mc: return -EPROBE_DEFER when a device is not yet discovered Date: Thu, 7 Jan 2021 17:36:35 +0200 Message-Id: <20210107153638.753942-4-ciorneiioana@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210107153638.753942-1-ciorneiioana@gmail.com> References: <20210107153638.753942-1-ciorneiioana@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Ioana Ciornei The fsl_mc_get_endpoint() should return a pointer to the connected fsl_mc device, if there is one. By interrogating the MC firmware, we know if there is an endpoint or not so when the endpoint device is actually searched on the fsl-mc bus and not found we are hitting the case in which the device has not been yet discovered by the bus. Return -EPROBE_DEFER so that callers can differentiate this case. Signed-off-by: Ioana Ciornei Acked-by: Laurentiu Tudor --- drivers/bus/fsl-mc/fsl-mc-bus.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/bus/fsl-mc/fsl-mc-bus.c b/drivers/bus/fsl-mc/fsl-mc-bus.c index 34811db074b7..28d5da1c011c 100644 --- a/drivers/bus/fsl-mc/fsl-mc-bus.c +++ b/drivers/bus/fsl-mc/fsl-mc-bus.c @@ -936,6 +936,15 @@ struct fsl_mc_device *fsl_mc_get_endpoint(struct fsl_mc_device *mc_dev) endpoint_desc.id = endpoint2.id; endpoint = fsl_mc_device_lookup(&endpoint_desc, mc_bus_dev); + /* + * We know that the device has an endpoint because we verified by + * interrogating the firmware. This is the case when the device was not + * yet discovered by the fsl-mc bus, thus the lookup returned NULL. + * Differentiate this case by returning EPROBE_DEFER. + */ + if (!endpoint) + return ERR_PTR(-EPROBE_DEFER); + return endpoint; } EXPORT_SYMBOL_GPL(fsl_mc_get_endpoint); From patchwork Thu Jan 7 15:36:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ioana Ciornei X-Patchwork-Id: 12004375 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HK_RANDOM_FROM,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DB063C433DB for ; Thu, 7 Jan 2021 15:39:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A9F9423406 for ; Thu, 7 Jan 2021 15:39:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728535AbhAGPim (ORCPT ); Thu, 7 Jan 2021 10:38:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38846 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726359AbhAGPil (ORCPT ); Thu, 7 Jan 2021 10:38:41 -0500 Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 13775C0612FA for ; Thu, 7 Jan 2021 07:37:46 -0800 (PST) Received: by mail-ej1-x634.google.com with SMTP id qw4so10175503ejb.12 for ; Thu, 07 Jan 2021 07:37:46 -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 :mime-version:content-transfer-encoding; bh=wSlTJH1IrQjIkK9wwXjQD9+RWIaWzujTlZiX0OHScDg=; b=NzCzD4oGhNVAVswGn7+wiM33zT0B+bzf6SM8f285F9fX90+/l0j3Y6xMOLGYDOaxeR l+dOJs96rWudAHDOBIi6SxnNIZkz5kx4Df52vta4mUqfxtmEBWAT9lYZzOzwmgj3jRmx ZdTxfRC1RkMJGtrdk9eLaTtIfcKyG96AgAHRCNim7C7uadvQ8Ambxy6S0ikNJQQwNxBH 2stozVYoEe2caBnbUovT3gg4d6FRiA9YFb6SMo4qWCwXoV/Itqj+PZ/bLJe74zLVzFmj W7N3AEjs8mICEjmfvHH7VgQQrtuAv8rEwsWkn+/7QiFxlGzBulCmRydQemDsdVowPoX4 5YrA== 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:mime-version:content-transfer-encoding; bh=wSlTJH1IrQjIkK9wwXjQD9+RWIaWzujTlZiX0OHScDg=; b=eOoLkQsBBUrjffLWh31yryycOatWW/UuqffWeT244FzVyB6L0m0OwNCReSwwRXTbXR HxM3tkIFWXIMZkyJNXOYaIc+57+37O90JVc22GiG+lEt+2a1RKfKyccovBsWBPzoDC5F UNYLb4aho2YQxCpwAJlNpEOcsGmDoGN1m2alLX7Su92KKhJf25xbMwMZ5j/Hl4OTJ8O/ QcIqpIVjz0Q54liBJhSnIPyiMAscwBur2UJCxgQ4ZQk62ZFrWr5j55mU1jca9Mq8t9Md XxhTkNyfAPTlb5cmA0UWdw98i0nAUjf6ua77/yTHx9nmZKfYftO3SQej2W/WY3ioXelC Yt6g== X-Gm-Message-State: AOAM532Kugpem4dWeApazO7ahpjYQGd0tQlgg2KFH64DG374OdXg9biC mKydseFUwr104031XDmOBmZUXG/h2uMMYQ== X-Google-Smtp-Source: ABdhPJxspatP0cPspUU0wLc4oItmIea4ARC27R9DvqSe6hMRP9BZPl5gAAErYMLEL6MZxjjruD/ghQ== X-Received: by 2002:a17:906:b56:: with SMTP id v22mr6700514ejg.145.1610033864793; Thu, 07 Jan 2021 07:37:44 -0800 (PST) Received: from yoga-910.localhost (5-12-227-87.residential.rdsnet.ro. [5.12.227.87]) by smtp.gmail.com with ESMTPSA id z9sm2574898eju.123.2021.01.07.07.37.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Jan 2021 07:37:44 -0800 (PST) From: Ioana Ciornei To: davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org Cc: laurentiu.tudor@nxp.com, Ioana Ciornei Subject: [PATCH 4/6] dpaa2-eth: retry the probe when the MAC is not yet discovered on the bus Date: Thu, 7 Jan 2021 17:36:36 +0200 Message-Id: <20210107153638.753942-5-ciorneiioana@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210107153638.753942-1-ciorneiioana@gmail.com> References: <20210107153638.753942-1-ciorneiioana@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Ioana Ciornei The fsl_mc_get_endpoint() function now returns -EPROBE_DEFER when the dpmac device was not yet discovered by the fsl-mc bus. When this happens, pass the error code up so that we can retry the probe at a later time. Signed-off-by: Ioana Ciornei --- drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c index f3f53e36aa00..3297e390476b 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c @@ -4042,6 +4042,10 @@ static int dpaa2_eth_connect_mac(struct dpaa2_eth_priv *priv) dpni_dev = to_fsl_mc_device(priv->net_dev->dev.parent); dpmac_dev = fsl_mc_get_endpoint(dpni_dev); + + if (PTR_ERR(dpmac_dev) == -EPROBE_DEFER) + return PTR_ERR(dpmac_dev); + if (IS_ERR_OR_NULL(dpmac_dev) || dpmac_dev->dev.type != &fsl_mc_bus_dpmac_type) return 0; From patchwork Thu Jan 7 15:36:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ioana Ciornei X-Patchwork-Id: 12004377 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HK_RANDOM_FROM,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C44A6C433E0 for ; Thu, 7 Jan 2021 15:39:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9274023403 for ; Thu, 7 Jan 2021 15:39:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728563AbhAGPim (ORCPT ); Thu, 7 Jan 2021 10:38:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38848 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727711AbhAGPil (ORCPT ); Thu, 7 Jan 2021 10:38:41 -0500 Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com [IPv6:2a00:1450:4864:20::635]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 157EBC0612FB for ; Thu, 7 Jan 2021 07:37:47 -0800 (PST) Received: by mail-ej1-x635.google.com with SMTP id 6so10280298ejz.5 for ; Thu, 07 Jan 2021 07:37:47 -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 :mime-version:content-transfer-encoding; bh=ZY/T6YdPW1/bQWWcd/QhJNN8iMR6alYEWPKJqFBra74=; b=SmdBpjh67Jf1QkYiCGQJenk/9mZ50F6CGn6X9IWvM5fuDbAUqttwkNShdQwsGSxnVe /aTybtX+omNiCY4N4lg8mQ/iSni84PuqpcahnXZEQzDyZtyxr2e8ig8Ukp6jgGxYR2DG E77EvuKIEChfhHOVo7KRnfJhNisID9X7r5O/CMHv6ybILcipSF9vLNYtCJS4jd+C6LU7 55LN/40LGm+Dadv6ZdDHfP06iQZDByNOS4Hl7fkJEwH6T4VeW78lvmK77k/aKJC1nuUC j+rKBCY3pJdb4tZMxFJCiuDtSiO4B84Kr3Hl0f5O2ZLlApkmcuZrzON2yOSwGVLWea+R 6kmA== 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:mime-version:content-transfer-encoding; bh=ZY/T6YdPW1/bQWWcd/QhJNN8iMR6alYEWPKJqFBra74=; b=WFnn9GnPJEiXPXX4NTQ4t6uyI5V3/cnMb24o0HBRyIPWVZTYnGsXYJ0eSGH7xYUM3A UelfYayIUUpsGFiepzjPWMGPOGBCGxGoMqnVnJD4gz/W4dAwkdnIHGSudtL7btw1DTFn +1yvN4IjlXxENbs8OMCCNvkiowhlyOVAf4KuN10eV6o/HX1wYLtV1MJZV6o6Yp0ZMVMg Ga2AJtKMNbE7HoKQ7/M0V6cddhq5wopoRyWDbmRotGyo97g0Wr5QoLvo1koneEmfbzPB JiLrbytVZ8w/k/f1yZq99EB0MX2xk+Un4yTi5BK4CFMV1VZUCFHb2cFeyjLXjX5O6p5o nKKw== X-Gm-Message-State: AOAM532hwI+++I34RCOw4+OZBT+PJIfGVssG9saxkP60Ab+ANOtBEv18 NifKQ2fo+KAAZIAVOlXkrM4dj5xtxvERnw== X-Google-Smtp-Source: ABdhPJwDdnfAR9hUEcUOu5Cfi9wj7cmhoKP5Z7l9nrMaY9GqIZy1fn6xk7GQrjzzcqk2x1uGv+Rtew== X-Received: by 2002:a17:906:653:: with SMTP id t19mr2491567ejb.44.1610033865796; Thu, 07 Jan 2021 07:37:45 -0800 (PST) Received: from yoga-910.localhost (5-12-227-87.residential.rdsnet.ro. [5.12.227.87]) by smtp.gmail.com with ESMTPSA id z9sm2574898eju.123.2021.01.07.07.37.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Jan 2021 07:37:45 -0800 (PST) From: Ioana Ciornei To: davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org Cc: laurentiu.tudor@nxp.com, Ioana Ciornei Subject: [PATCH 5/6] dpaa2-mac: remove an unnecessary check Date: Thu, 7 Jan 2021 17:36:37 +0200 Message-Id: <20210107153638.753942-6-ciorneiioana@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210107153638.753942-1-ciorneiioana@gmail.com> References: <20210107153638.753942-1-ciorneiioana@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Ioana Ciornei The dpaa2-eth driver has phylink integration only if the connected dpmac object is in TYPE_PHY (aka the PCS/PHY etc link status is managed by Linux instead of the firmware). The check is thus unnecessary because the code path that reaches the .mac_link_up() callback is only with TYPE_PHY dpmac objects. Signed-off-by: Ioana Ciornei --- .../net/ethernet/freescale/dpaa2/dpaa2-mac.c | 43 ++++++++----------- 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c index 666bc88c178f..40aa81eb3c4b 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c @@ -174,30 +174,25 @@ static void dpaa2_mac_link_up(struct phylink_config *config, dpmac_state->up = 1; - if (mac->if_link_type == DPMAC_LINK_TYPE_PHY) { - /* If the DPMAC is configured for PHY mode, we need - * to pass the link parameters to the MC firmware. - */ - dpmac_state->rate = speed; - - if (duplex == DUPLEX_HALF) - dpmac_state->options |= DPMAC_LINK_OPT_HALF_DUPLEX; - else if (duplex == DUPLEX_FULL) - dpmac_state->options &= ~DPMAC_LINK_OPT_HALF_DUPLEX; - - /* This is lossy; the firmware really should take the pause - * enablement status rather than pause/asym pause status. - */ - if (rx_pause) - dpmac_state->options |= DPMAC_LINK_OPT_PAUSE; - else - dpmac_state->options &= ~DPMAC_LINK_OPT_PAUSE; - - if (rx_pause ^ tx_pause) - dpmac_state->options |= DPMAC_LINK_OPT_ASYM_PAUSE; - else - dpmac_state->options &= ~DPMAC_LINK_OPT_ASYM_PAUSE; - } + dpmac_state->rate = speed; + + if (duplex == DUPLEX_HALF) + dpmac_state->options |= DPMAC_LINK_OPT_HALF_DUPLEX; + else if (duplex == DUPLEX_FULL) + dpmac_state->options &= ~DPMAC_LINK_OPT_HALF_DUPLEX; + + /* This is lossy; the firmware really should take the pause + * enablement status rather than pause/asym pause status. + */ + if (rx_pause) + dpmac_state->options |= DPMAC_LINK_OPT_PAUSE; + else + dpmac_state->options &= ~DPMAC_LINK_OPT_PAUSE; + + if (rx_pause ^ tx_pause) + dpmac_state->options |= DPMAC_LINK_OPT_ASYM_PAUSE; + else + dpmac_state->options &= ~DPMAC_LINK_OPT_ASYM_PAUSE; err = dpmac_set_link_state(mac->mc_io, 0, mac->mc_dev->mc_handle, dpmac_state); From patchwork Thu Jan 7 15:36:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ioana Ciornei X-Patchwork-Id: 12004379 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HK_RANDOM_FROM,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 024E1C433E6 for ; Thu, 7 Jan 2021 15:39:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C1C4323428 for ; Thu, 7 Jan 2021 15:39:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728571AbhAGPjC (ORCPT ); Thu, 7 Jan 2021 10:39:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38900 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726073AbhAGPjB (ORCPT ); Thu, 7 Jan 2021 10:39:01 -0500 Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com [IPv6:2a00:1450:4864:20::62f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 117F1C0612FC for ; Thu, 7 Jan 2021 07:37:48 -0800 (PST) Received: by mail-ej1-x62f.google.com with SMTP id ga15so10305307ejb.4 for ; Thu, 07 Jan 2021 07:37:47 -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 :mime-version:content-transfer-encoding; bh=nFp2y4A6EWADRzME0Z9sl6GkREM6Ipuc4MBaPZwFHvI=; b=nzt6iGvOdztCyBJnpBeFufUdTNh+garGrjNym1yqJRk28JjgBTE6xskygIoRwJBXuw 3gYs4ptXSJcOK8eibbqsoT/p/g36fV5j3Z3OcvOFS3nrwIGpj0OWCJYF1IDRa5a4E11d ZH21+b5g3Lp6r9Lgk9RaH05/9kzVn4d+rvA8pvKhpo4ltorknGTxdCbMNHuDz4W248oI uNEjYH+cFX/g4rQQajF/qb8PkLM/0CrbWT9ePLMNhqW639cKtYvHyXw1evbPR5xMSBmX RzDJh9UgZnteE+lQNHk8DpRBywwrvWWaE1G+9qIkxWBVE2zVoyM0UyPudsVPThnOilk3 maAg== 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:mime-version:content-transfer-encoding; bh=nFp2y4A6EWADRzME0Z9sl6GkREM6Ipuc4MBaPZwFHvI=; b=lGVA2MEf/CiOQ+s7qWH9IU4IRDrh2bGZvjm10TzFtDBz2Fmtd68EKJseLeZqwznTCp xrk6hNIdFwlAMT4mmpCtH+8Mr4Dq11PGsip639IIzOmsv1SBcYt0dRkfNkbtWiignMNm UEFjcpVwTw/8YHQ8AeW8gwVULMJoAGjjNyP0MZNvvHOxP72n2NcWeMnukyo1X1pDR/D3 3jXhw/JXsQw8Zpymy3y346ET4+abLULhdetqqgL2yc/PVt2E207dGvEv27X8R6nhwIZc WrQevWRKy7CvP/ZWPlg6JkA0yqBa7abjqYc1nYJSMwVuTPdc+z0V27yq8vECbd/hKlKx aHyg== X-Gm-Message-State: AOAM5331PN6j6miIUzyZ6ZwGDv8fr5uhed4nny5DvJeKnuKKxkDhmxNg 7MId9rFWBpc1fqyfkgTGRGc= X-Google-Smtp-Source: ABdhPJwXv3RbQG3XMInvyEnhbs3CMmW2oJjK2ZDtgDDKZCHzNsNHgAD5EA/BB9YZoz76Bg7EItLoTA== X-Received: by 2002:a17:906:4050:: with SMTP id y16mr6366409ejj.537.1610033866745; Thu, 07 Jan 2021 07:37:46 -0800 (PST) Received: from yoga-910.localhost (5-12-227-87.residential.rdsnet.ro. [5.12.227.87]) by smtp.gmail.com with ESMTPSA id z9sm2574898eju.123.2021.01.07.07.37.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Jan 2021 07:37:46 -0800 (PST) From: Ioana Ciornei To: davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org Cc: laurentiu.tudor@nxp.com, Ioana Ciornei Subject: [PATCH 6/6] dpaa2-mac: remove a comment regarding pause settings Date: Thu, 7 Jan 2021 17:36:38 +0200 Message-Id: <20210107153638.753942-7-ciorneiioana@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210107153638.753942-1-ciorneiioana@gmail.com> References: <20210107153638.753942-1-ciorneiioana@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org From: Ioana Ciornei The pause settings are not actually lossy since the MC firmware was does is to transform back these pause/asym-pause flags into rx/tx pause enablement status. We are not losing information by this transformation, thus remove the comment. Signed-off-by: Ioana Ciornei --- drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c index 40aa81eb3c4b..f76adbe8c32b 100644 --- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c +++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.c @@ -181,9 +181,6 @@ static void dpaa2_mac_link_up(struct phylink_config *config, else if (duplex == DUPLEX_FULL) dpmac_state->options &= ~DPMAC_LINK_OPT_HALF_DUPLEX; - /* This is lossy; the firmware really should take the pause - * enablement status rather than pause/asym pause status. - */ if (rx_pause) dpmac_state->options |= DPMAC_LINK_OPT_PAUSE; else