From patchwork Sat Jun 18 07:26:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 12886428 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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A7713C43334 for ; Sat, 18 Jun 2022 15:52:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234460AbiFRPwQ (ORCPT ); Sat, 18 Jun 2022 11:52:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54150 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230082AbiFRPwP (ORCPT ); Sat, 18 Jun 2022 11:52:15 -0400 Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com [IPv6:2a00:1450:4864:20::335]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7433813D10; Sat, 18 Jun 2022 08:52:14 -0700 (PDT) Received: by mail-wm1-x335.google.com with SMTP id m32-20020a05600c3b2000b0039756bb41f2so3702667wms.3; Sat, 18 Jun 2022 08:52:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=WlLbgDasKJ1im1j+lOloRZZaui0VTdPP0RSuLZMaCi8=; b=WUFejGDG/Z44pDXvIUaaiJbcI7gUm1KnhUNL/rZLSInthig5fAgnIkZKgtEc7k00dF KwpEOSH8SxzVDSxU+TcIlXv2hdi+m3Z1voHYeGx4pVLvTs/LE/5ls+LkgFLvm0NSep19 85ViAZL9PC8oicozXpDd8LOj77Outv5nvjEa31Tn+jVvp6uZ7MdOqZglvxRt9GBAZe/L gKRYi26veR+qfwmoAr0Z3U1qAFmpG//tMYgAx6b0WR8GMNgV6io/G3Cxjwm4WQvhaBFw Jdei4b8VsukIaX+OnDjpVjt8vnH8N6p1xq2jVbG5gNiQgYZLRinYQr1Q9uLQ/gt3voHb X8cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=WlLbgDasKJ1im1j+lOloRZZaui0VTdPP0RSuLZMaCi8=; b=UVt1ZGHjuGUoE6X170NQ1ylpcnaLxfkPGljn+p0hQpJ8sSgShXkqrn4wO/kUfS4yWE k546J/KjxiDA0drc7PWYdhVD92iahVYjeaRCXSpUeWD9dOEMrhZqgIjQTCTQRcZ2UEwM bwBPneuKY4+wDNkgQ7m7fZbzKwpYsu7USNPa4lrFL8PFL4gOenPUHSYiJ4CCkAav7TJO gFbykNc3NWIphCOGpsDF5OgGnFCPnuFT08DhKLnhlsPtctNmjipUnmDb+W1uDmEMDIKj mO44TQm3x1anihyjj3dDCl7KzC/A79Z9EEf1jVWumjk3peJRVUSyfDbpZc0ZQxriTwok m7lw== X-Gm-Message-State: AOAM532VoLfTJk2sDBvBmmrP7LBmqNK16GNU0iYKnA+GJUcYXMUjZm0v h1fv2vKeNzSiDhifYll05fM= X-Google-Smtp-Source: ABdhPJzDAGYaxccU9fjdXNossisUYb/8irdwQBJFqJMXllpbLj7P2DrSKd+EgBYo6QuwJTWji1wm4Q== X-Received: by 2002:a05:600c:4ec9:b0:39c:69c7:715d with SMTP id g9-20020a05600c4ec900b0039c69c7715dmr25799221wmq.154.1655567532736; Sat, 18 Jun 2022 08:52:12 -0700 (PDT) Received: from localhost.localdomain (93-42-70-190.ip85.fastwebnet.it. [93.42.70.190]) by smtp.googlemail.com with ESMTPSA id a8-20020adfed08000000b0020d106c0386sm1952188wro.89.2022.06.18.08.52.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Jun 2022 08:52:12 -0700 (PDT) From: Christian Marangi To: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jonathan McDowell , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Christian Marangi Subject: [RESEND net-next PATCH 1/3] net: dsa: qca8k: reduce mgmt ethernet timeout Date: Sat, 18 Jun 2022 09:26:48 +0200 Message-Id: <20220618072650.3502-1-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.36.1 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org The current mgmt ethernet timeout is set to 100ms. This value is too big and would slow down any mdio command in case the mgmt ethernet packet have some problems on the receiving part. Reduce it to just 5ms to handle case when some operation are done on the master port that would cause the mgmt ethernet to not work temporarily. Signed-off-by: Christian Marangi --- drivers/net/dsa/qca8k.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h index 04408e11402a..ec58d0e80a70 100644 --- a/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h @@ -15,7 +15,7 @@ #define QCA8K_ETHERNET_MDIO_PRIORITY 7 #define QCA8K_ETHERNET_PHY_PRIORITY 6 -#define QCA8K_ETHERNET_TIMEOUT 100 +#define QCA8K_ETHERNET_TIMEOUT 5 #define QCA8K_NUM_PORTS 7 #define QCA8K_NUM_CPU_PORTS 2 From patchwork Sat Jun 18 07:26:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 12886429 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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 085ECC433EF for ; Sat, 18 Jun 2022 15:52:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235278AbiFRPwR (ORCPT ); Sat, 18 Jun 2022 11:52:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54162 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233697AbiFRPwQ (ORCPT ); Sat, 18 Jun 2022 11:52:16 -0400 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8215313D19; Sat, 18 Jun 2022 08:52:15 -0700 (PDT) Received: by mail-wr1-x429.google.com with SMTP id o16so9199019wra.4; Sat, 18 Jun 2022 08:52:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=j25IktA0GRUlxfFc2WwUnwO0L6NRqPXuym+pEq9YmO0=; b=ddOLXmWCBJ7SB5wKU7m7FJQqT7AnpTmrj3g+3++ra5YRtOhlKH+vqMwVghb7nU9Zgt 45dxHUnhoeIi3STGNEt7ZhOpUWVlb616T3W0GciPvz8+zcLksT875zXx7p3WTvst+Qve yz1SrKiPEzIivPGuVTEOD9BeXBK/xbQjiozOuBagkL2WLS9WF6aY2NCO5MoxhHf5JU5K VGkqgDQswI54mg128My4OX7MfAoHyoGda57iDlzvfHzZOd8endrigdDM1klceEcbFK/y 8aHrGZYCaQuUAiQTKeUrWPdORFQQJp5gjFz9eJXx4FGa0xeontW+Jwds8Y69T+r5eBp/ bdYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=j25IktA0GRUlxfFc2WwUnwO0L6NRqPXuym+pEq9YmO0=; b=pKQvRc1iAckaqZCLqApe+ICViyfz0rdgP3bVmH017ebStNdA5kFSNiB3cSPdGlxztd COUKBCrw4ptzfnKAznw1UpWuUtAhGPH3+hfLUo33cune4gMgYsNknSZTZNShAhMSvOjl D8SIQK/R8LOWtnPLx1/sCBqsAwGaxnnlV12psBrtpZ3nrya3D3BKQCMkt1QXztTgt9l+ wFQ+LOLdIXIND9Sx1TLQ/hfo3HZ1cBF6xrjeIWpJKiJLqLqkVTMvomp9UPaK0PFp/B7t 0WgTe5WsddgOThA0YeK+HSiFeB4LytoSLRlYZquuERIu0rI5h9BtDEiAs3vVXLbnMSTE lfng== X-Gm-Message-State: AJIora/S/1pUPqFnZhbdLBWnMj7dWYlFxvSuwhV2ZM/UBoDEPnH4SvN/ +mQNTnYYP5eKEUUOsyQEJXU= X-Google-Smtp-Source: AGRyM1vptSNipeAukI6wlHg/Sp5B5mTyyoHVvdLbfQpXcbBd4AJvEhxGEUc4bX+E75UFBSizttNBtQ== X-Received: by 2002:adf:a51a:0:b0:21b:823c:ae02 with SMTP id i26-20020adfa51a000000b0021b823cae02mr6407253wrb.25.1655567533837; Sat, 18 Jun 2022 08:52:13 -0700 (PDT) Received: from localhost.localdomain (93-42-70-190.ip85.fastwebnet.it. [93.42.70.190]) by smtp.googlemail.com with ESMTPSA id a8-20020adfed08000000b0020d106c0386sm1952188wro.89.2022.06.18.08.52.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Jun 2022 08:52:13 -0700 (PDT) From: Christian Marangi To: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jonathan McDowell , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Christian Marangi Subject: [RESEND net-next PATCH 2/3] net: dsa: qca8k: change only max_frame_size of mac_frame_size_reg Date: Sat, 18 Jun 2022 09:26:49 +0200 Message-Id: <20220618072650.3502-2-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220618072650.3502-1-ansuelsmth@gmail.com> References: <20220618072650.3502-1-ansuelsmth@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org Currently we overwrite the entire MAX_FRAME_SIZE reg instead of tweaking just the MAX_FRAME_SIZE value. Change this and update only the relevant bits. Signed-off-by: Christian Marangi --- drivers/net/dsa/qca8k.c | 8 ++++++-- drivers/net/dsa/qca8k.h | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c index 2727d3169c25..eaaf80f96fa9 100644 --- a/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c @@ -2345,7 +2345,9 @@ qca8k_port_change_mtu(struct dsa_switch *ds, int port, int new_mtu) return 0; /* Include L2 header / FCS length */ - return qca8k_write(priv, QCA8K_MAX_FRAME_SIZE, new_mtu + ETH_HLEN + ETH_FCS_LEN); + return regmap_update_bits(priv->regmap, QCA8K_MAX_FRAME_SIZE_REG, + QCA8K_MAX_FRAME_SIZE_MASK, + new_mtu + ETH_HLEN + ETH_FCS_LEN); } static int @@ -3015,7 +3017,9 @@ qca8k_setup(struct dsa_switch *ds) } /* Setup our port MTUs to match power on defaults */ - ret = qca8k_write(priv, QCA8K_MAX_FRAME_SIZE, ETH_FRAME_LEN + ETH_FCS_LEN); + ret = regmap_update_bits(priv->regmap, QCA8K_MAX_FRAME_SIZE_REG, + QCA8K_MAX_FRAME_SIZE_MASK, + ETH_FRAME_LEN + ETH_FCS_LEN); if (ret) dev_warn(priv->dev, "failed setting MTU settings"); diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h index ec58d0e80a70..1d0c383a95e7 100644 --- a/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h @@ -87,7 +87,8 @@ #define QCA8K_MDIO_MASTER_MAX_REG 32 #define QCA8K_GOL_MAC_ADDR0 0x60 #define QCA8K_GOL_MAC_ADDR1 0x64 -#define QCA8K_MAX_FRAME_SIZE 0x78 +#define QCA8K_MAX_FRAME_SIZE_REG 0x78 +#define QCA8K_MAX_FRAME_SIZE_MASK GENMASK(13, 0) #define QCA8K_REG_PORT_STATUS(_i) (0x07c + (_i) * 4) #define QCA8K_PORT_STATUS_SPEED GENMASK(1, 0) #define QCA8K_PORT_STATUS_SPEED_10 0 From patchwork Sat Jun 18 07:26:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 12886430 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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C937CCA473 for ; Sat, 18 Jun 2022 15:52:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235604AbiFRPwT (ORCPT ); Sat, 18 Jun 2022 11:52:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54170 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235296AbiFRPwR (ORCPT ); Sat, 18 Jun 2022 11:52:17 -0400 Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [IPv6:2a00:1450:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8245413D10; Sat, 18 Jun 2022 08:52:16 -0700 (PDT) Received: by mail-wr1-x42c.google.com with SMTP id o16so9199053wra.4; Sat, 18 Jun 2022 08:52:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TAka2U091hq1pTYLfbpSkbHxbEYvHoamK2SIJoLud0w=; b=dpUtiHtnGLH0sRA+TkOb7TH5iShPD74gkMF4kZ5N9g4gW4bPawc1KU98fC2i4vKT2E 0saMbZ5pEh/7QCGHYCW868w9Nnrrp5yNJJHdifUXLAqO18+AQANWcT/djpfc+yOkzym+ r899LsQvd5P+stvcHjPiXrapVufqGesRbVLBElXX1p6Rw4+cdWd7NL1Jm/q+CK+14xcG mOLOLp2KZbYofTMnxW4cv4QXJDQiy4vWXjip7GSLzVnZi785B9O1HBKN4n6ZxKJwgEg8 EF37uJyTaCFAkoWjMk4zLLmkzoBUkLJN0AaqXh3nG1CfWR4sDAxqQ9wsqHKZJiRk9nIw kGug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TAka2U091hq1pTYLfbpSkbHxbEYvHoamK2SIJoLud0w=; b=VCzn2xE3HoiYCKRRQadarKoPmxBimvp0b4Qy6R8QTDwdHsQtow686v7d7OT2rsEV+s mkZx/ROeJUe3113ZN59MSCAPpc8UX2Yx1QTYuxjw7mL3rVY26U1gm4kNZZhwmyA7zjd3 OP8tnBPeuZpafp9OQvJFiKvzLRVvtaJDlo23oKJpzZvYj2gF8oEsM+m63G1TN826UK7E F3o8QEQJNKZUZV0pN8fJwssjcCBPMUKOeq7e9B0WB2yMaTzaEGCywbHb6bgTx9biQQmf 7r9Sl69rdt5LwIoagLSmfvHt/DvNXHiJoNqgztXvcdem6MGX+YAIqvfXtB46C+sxdy+U edew== X-Gm-Message-State: AJIora/vr9DGVsQXDRMNskmr2Fy125MR4gYEbB9Gun1pLYgbcTgdUZUk +MRNRBXP3gDWXWYeGDumvJc= X-Google-Smtp-Source: AGRyM1va7j3EnoWku6+iPBrLG3zW8WN2GupDj5eVgKdIfXnz1Q+Aww42ksJ2o1+DqQk2eeFLFbh7cg== X-Received: by 2002:a05:6000:1ac7:b0:219:e95e:706b with SMTP id i7-20020a0560001ac700b00219e95e706bmr14516251wry.198.1655567535033; Sat, 18 Jun 2022 08:52:15 -0700 (PDT) Received: from localhost.localdomain (93-42-70-190.ip85.fastwebnet.it. [93.42.70.190]) by smtp.googlemail.com with ESMTPSA id a8-20020adfed08000000b0020d106c0386sm1952188wro.89.2022.06.18.08.52.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 18 Jun 2022 08:52:14 -0700 (PDT) From: Christian Marangi To: Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jonathan McDowell , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Christian Marangi Subject: [RESEND net-next PATCH 3/3] net: dsa: qca8k: reset cpu port on MTU change Date: Sat, 18 Jun 2022 09:26:50 +0200 Message-Id: <20220618072650.3502-3-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220618072650.3502-1-ansuelsmth@gmail.com> References: <20220618072650.3502-1-ansuelsmth@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org It was discovered that the Documentation lacks of a fundamental detail on how to correctly change the MAX_FRAME_SIZE of the switch. In fact if the MAX_FRAME_SIZE is changed while the cpu port is on, the switch panics and cease to send any packet. This cause the mgmt ethernet system to not receive any packet (the slow fallback still works) and makes the device not reachable. To recover from this a switch reset is required. To correctly handle this, turn off the cpu ports before changing the MAX_FRAME_SIZE and turn on again after the value is applied. Fixes: f58d2598cf70 ("net: dsa: qca8k: implement the port MTU callbacks") Signed-off-by: Christian Marangi --- drivers/net/dsa/qca8k.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c index eaaf80f96fa9..0b92b9d5954a 100644 --- a/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c @@ -2334,6 +2334,7 @@ static int qca8k_port_change_mtu(struct dsa_switch *ds, int port, int new_mtu) { struct qca8k_priv *priv = ds->priv; + int ret; /* We have only have a general MTU setting. * DSA always set the CPU port's MTU to the largest MTU of the slave @@ -2344,10 +2345,29 @@ qca8k_port_change_mtu(struct dsa_switch *ds, int port, int new_mtu) if (!dsa_is_cpu_port(ds, port)) return 0; + /* To change the MAX_FRAME_SIZE the cpu ports must be off or + * the switch panics. + * Turn off both cpu ports before applying the new value to prevent + * this. + */ + if (priv->port_enabled_map & BIT(0)) + qca8k_port_set_status(priv, 0, 0); + + if (priv->port_enabled_map & BIT(6)) + qca8k_port_set_status(priv, 6, 0); + /* Include L2 header / FCS length */ - return regmap_update_bits(priv->regmap, QCA8K_MAX_FRAME_SIZE_REG, - QCA8K_MAX_FRAME_SIZE_MASK, - new_mtu + ETH_HLEN + ETH_FCS_LEN); + ret = regmap_update_bits(priv->regmap, QCA8K_MAX_FRAME_SIZE_REG, + QCA8K_MAX_FRAME_SIZE_MASK, + new_mtu + ETH_HLEN + ETH_FCS_LEN); + + if (priv->port_enabled_map & BIT(0)) + qca8k_port_set_status(priv, 0, 1); + + if (priv->port_enabled_map & BIT(6)) + qca8k_port_set_status(priv, 6, 1); + + return ret; } static int