From nobody Sun Feb 8 09:10:49 2026 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 73C95C001DF for ; Sun, 23 Jul 2023 16:22:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229962AbjGWQWU (ORCPT ); Sun, 23 Jul 2023 12:22:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43050 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229870AbjGWQWL (ORCPT ); Sun, 23 Jul 2023 12:22:11 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A62C7E72; Sun, 23 Jul 2023 09:22:10 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 39B0E60DD4; Sun, 23 Jul 2023 16:22:10 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 49273C433CC; Sun, 23 Jul 2023 16:22:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690129329; bh=d3IEyKFkLTaGuIoiBZGy50KXj/3eibRX6B2ljjyT/mA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oNtkjvyOUHeIkOX+oRi5tpfcel+zBYZmSMYli+fDZh4fScvoPEQHtPRvw+0USUSQ0 6CZ71P8rCOIl7JTxwLoTHwzmjE78ZBDzikJh9aNm/EqvMA5jNmuk6Q3z6r+Jftj1s5 eFPbAtF9hF4XNccHZWz18TE9ucvwvtt9AiCDq5O4GtQ3K6jkW8PIdNoktHmf7GDBjI Y8A1+JY3+sitUck351vYT6XQs4UP33G6+i6KxJGoY+dq1BF9fOu9F3QEUkbSbRAf0M tHiP2so+je0MJDpFysi0LVlUoCoqMIvidgBjqbdKeKlWLelEOQwVnTs+/6D0aC7xE/ KE5MdoQ5zYkhA== From: Jisheng Zhang To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH net-next 01/10] net: stmmac: correct RX COE parsing for xgmac Date: Mon, 24 Jul 2023 00:10:20 +0800 Message-Id: <20230723161029.1345-2-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230723161029.1345-1-jszhang@kernel.org> References: <20230723161029.1345-1-jszhang@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" xgmac can support RX COE, but there's no two kinds of COE, I.E type 1 and type 2 COE. Signed-off-by: Jisheng Zhang --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/ne= t/ethernet/stmicro/stmmac/stmmac_main.c index e1f1c034d325..15ed3947361b 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -6271,7 +6271,7 @@ static int stmmac_dma_cap_show(struct seq_file *seq, = void *v) seq_printf(seq, "\tAV features: %s\n", (priv->dma_cap.av) ? "Y" : "N"); seq_printf(seq, "\tChecksum Offload in TX: %s\n", (priv->dma_cap.tx_coe) ? "Y" : "N"); - if (priv->synopsys_id >=3D DWMAC_CORE_4_00) { + if (priv->synopsys_id >=3D DWMAC_CORE_4_00 || priv->plat->has_xgmac) { seq_printf(seq, "\tIP Checksum Offload in RX: %s\n", (priv->dma_cap.rx_coe) ? "Y" : "N"); } else { @@ -7013,7 +7013,7 @@ static int stmmac_hw_init(struct stmmac_priv *priv) if (priv->plat->rx_coe) { priv->hw->rx_csum =3D priv->plat->rx_coe; dev_info(priv->device, "RX Checksum Offload Engine supported\n"); - if (priv->synopsys_id < DWMAC_CORE_4_00) + if (priv->synopsys_id < DWMAC_CORE_4_00 && !priv->plat->has_xgmac) dev_info(priv->device, "COE Type %d\n", priv->hw->rx_csum); } if (priv->plat->tx_coe) --=20 2.40.1 From nobody Sun Feb 8 09:10:49 2026 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 88C90C41513 for ; Sun, 23 Jul 2023 16:22:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229994AbjGWQWX (ORCPT ); Sun, 23 Jul 2023 12:22:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43128 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229891AbjGWQWP (ORCPT ); Sun, 23 Jul 2023 12:22:15 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 577C2E76; Sun, 23 Jul 2023 09:22:14 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id A5DB460DFB; Sun, 23 Jul 2023 16:22:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 13453C433C7; Sun, 23 Jul 2023 16:22:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690129333; bh=xPpxwJzBLsCaca6qQZWRTcviG5VQc7YuCxtBnfOO0Sc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AETGN3psgYDDeZ7dEs61AH+fm3ZEVg3r6pj/bYdGI19yI2nBvxoq0BdIEj8AhmTR1 E01kZ3OlafYNozk7XyhxhkUA1OPn5TbDbIcaks21KcjxCV9SiUd6ihHPkwcAD17LKS MTNfuC/XyK9+n6hZH5nXwAHIT1fn3I1n4WQ9lQi08GVemg4wuBDEe82fWemSYoHW07 yTP2s1rO9QZNg9GcA5PROay5Sqh4jnA1Qqg3U3i/Pdld8KzmqzmHfJf7KUrh3aen4X d0Ir96HVrfapgb2TSqjGl/AbCkicw4A46nqADKQcL1BjAjXs4iHPo4U4WPoiyvA/Cr Kror3MKocjfTw== From: Jisheng Zhang To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH net-next 02/10] net: stmmac: xgmac: add more feature parsing from hw cap Date: Mon, 24 Jul 2023 00:10:21 +0800 Message-Id: <20230723161029.1345-3-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230723161029.1345-1-jszhang@kernel.org> References: <20230723161029.1345-1-jszhang@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The XGMAC_HWFEAT_GMIISEL bit also indicates whether support 10/100Mbps or not. The XGMAC_HWFEAT_HDSEL bit indicates whether support half duplex or not. The XGMAC_HWFEAT_ADDMACADRSEL bit indicates whether support Multiple MAC address registers or not. The XGMAC_HWFEAT_SMASEL bit indicates whether support SMA (MDIO) Interface or not. Signed-off-by: Jisheng Zhang --- drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h | 3 +++ drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h b/drivers/net/e= thernet/stmicro/stmmac/dwxgmac2.h index 153321fe42c3..81cbb13a101d 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h +++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h @@ -111,6 +111,7 @@ #define XGMAC_LPI_TIMER_CTRL 0x000000d4 #define XGMAC_HW_FEATURE0 0x0000011c #define XGMAC_HWFEAT_SAVLANINS BIT(27) +#define XGMAC_HWFEAT_ADDMACADRSEL GENMASK(22, 18) #define XGMAC_HWFEAT_RXCOESEL BIT(16) #define XGMAC_HWFEAT_TXCOESEL BIT(14) #define XGMAC_HWFEAT_EEESEL BIT(13) @@ -121,7 +122,9 @@ #define XGMAC_HWFEAT_MMCSEL BIT(8) #define XGMAC_HWFEAT_MGKSEL BIT(7) #define XGMAC_HWFEAT_RWKSEL BIT(6) +#define XGMAC_HWFEAT_SMASEL BIT(5) #define XGMAC_HWFEAT_VLHASH BIT(4) +#define XGMAC_HWFEAT_HDSEL BIT(3) #define XGMAC_HWFEAT_GMIISEL BIT(1) #define XGMAC_HW_FEATURE1 0x00000120 #define XGMAC_HWFEAT_L3L4FNUM GENMASK(30, 27) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c b/drivers/n= et/ethernet/stmicro/stmmac/dwxgmac2_dma.c index b09395f5edcb..b5ba4e0cca55 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c @@ -406,6 +406,10 @@ static int dwxgmac2_get_hw_feature(void __iomem *ioadd= r, dma_cap->pmt_remote_wake_up =3D (hw_cap & XGMAC_HWFEAT_RWKSEL) >> 6; dma_cap->vlhash =3D (hw_cap & XGMAC_HWFEAT_VLHASH) >> 4; dma_cap->mbps_1000 =3D (hw_cap & XGMAC_HWFEAT_GMIISEL) >> 1; + dma_cap->mbps_10_100 =3D (hw_cap & XGMAC_HWFEAT_GMIISEL) >> 1; + dma_cap->half_duplex =3D (hw_cap & XGMAC_HWFEAT_HDSEL) >> 3; + dma_cap->multi_addr =3D (hw_cap & XGMAC_HWFEAT_ADDMACADRSEL) >> 18; + dma_cap->sma_mdio =3D (hw_cap & XGMAC_HWFEAT_SMASEL) >> 5; =20 /* MAC HW feature 1 */ hw_cap =3D readl(ioaddr + XGMAC_HW_FEATURE1); --=20 2.40.1 From nobody Sun Feb 8 09:10:49 2026 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 5A011C001DF for ; Sun, 23 Jul 2023 16:22:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230038AbjGWQW0 (ORCPT ); Sun, 23 Jul 2023 12:22:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43232 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229973AbjGWQWU (ORCPT ); Sun, 23 Jul 2023 12:22:20 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C8048E7C; Sun, 23 Jul 2023 09:22:17 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 1D96C60DFC; Sun, 23 Jul 2023 16:22:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 81AE9C433C8; Sun, 23 Jul 2023 16:22:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690129336; bh=+ysItbKZr2r8wDthNuZTqSVce0mf6PlXK4jyZ+ackfA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=K8bpSYVX9RUYYhbQaQqgpUmPVLnuD1/g19mdl573T6CZcPKyqBBBBeKKBpn2vH8RV c/nXfG+3ag9VK1FeXznOirepvtWS0r5vtzDQ3QwmhuhGL3mwXa/TIMb9gB/VZz4/7k WYOeFc7KTyiY8+aivYsF37WuKlQnsS2W1JTd2Xn9+pvAhsIVT0hsUTK9ILG+geuQ2t h4u1Dpod4CWczqZhCrjMKl6udaF6Ewa3L81UjWRdfHd3y4sw9mB4DweGRDgSL8w0up dBvG+uBWel61arpomk8HKW5bLnFozmEGG3W6nDlDwNP2u8CtUn2GihZcGC0lUjjeUK l82PKeVU22yhg== From: Jisheng Zhang To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH net-next 03/10] net: stmmac: mdio: enlarge the max XGMAC C22 ADDR to 31 Date: Mon, 24 Jul 2023 00:10:22 +0800 Message-Id: <20230723161029.1345-4-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230723161029.1345-1-jszhang@kernel.org> References: <20230723161029.1345-1-jszhang@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The IP can support up to 31 xgmac c22 addresses now. Signed-off-by: Jisheng Zhang --- drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c b/drivers/ne= t/ethernet/stmicro/stmmac/stmmac_mdio.c index 3db1cb0fd160..e6d8e34fafef 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c @@ -40,7 +40,7 @@ #define MII_XGMAC_WRITE (1 << MII_XGMAC_CMD_SHIFT) #define MII_XGMAC_READ (3 << MII_XGMAC_CMD_SHIFT) #define MII_XGMAC_BUSY BIT(22) -#define MII_XGMAC_MAX_C22ADDR 3 +#define MII_XGMAC_MAX_C22ADDR 31 #define MII_XGMAC_C22P_MASK GENMASK(MII_XGMAC_MAX_C22ADDR, 0) #define MII_XGMAC_PA_SHIFT 16 #define MII_XGMAC_DA_SHIFT 21 --=20 2.40.1 From nobody Sun Feb 8 09:10:49 2026 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 5865AC001DE for ; Sun, 23 Jul 2023 16:22:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230128AbjGWQWc (ORCPT ); Sun, 23 Jul 2023 12:22:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43434 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230073AbjGWQW1 (ORCPT ); Sun, 23 Jul 2023 12:22:27 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BF82810D8; Sun, 23 Jul 2023 09:22:22 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 08CB960DFC; Sun, 23 Jul 2023 16:22:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E9942C433AB; Sun, 23 Jul 2023 16:22:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690129341; bh=DE4uo4JK2isjtFObJJyFLlrT5b6CK5kuMo4uw+Jhg2c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gxJgtT6d+8MMUOnhiMgFqecA9A+UoZoYEZNBjfGO7bMmMtFyDCJj74mzDvTPDGSFX BaBhs3Kk9mauFNzspZZzLvp5EuM+Qt0nPs8kQxHU+BFAOYzECl02gnEN5ycZzDb1mw 4Pf4F8ML0PDzrzkWtTImdtpr7iGZoY5V3pmDqmg9/VtEYr+xvnq2JB9E9O49zNMHmt TkUWAoCS+szIh3RBP1FBx6QjsUmO4ldMvwapT0qB31xP2IXk9ep16DVcN3ljFUcH8q 9WObdGpuZoUZvGrwoFRWAP3iZrRtoIcUPwuJW6kPTbe26MtMh7EyvX5GYLSMSXW5RC hfmfkt6k3DngA== From: Jisheng Zhang To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH net-next 04/10] net: stmmac: enlarge max rx/tx queues and channels to 16 Date: Mon, 24 Jul 2023 00:10:23 +0800 Message-Id: <20230723161029.1345-5-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230723161029.1345-1-jszhang@kernel.org> References: <20230723161029.1345-1-jszhang@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" xgmac supports up to 16 rx/tx queues and up to 16 channels. Signed-off-by: Jisheng Zhang --- drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c | 5 ++--- include/linux/stmmac.h | 6 +++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c b/drivers/= net/ethernet/stmicro/stmmac/dwxgmac2_core.c index a0c2ef8bb0ac..aaae82d3d9dc 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.c @@ -202,9 +202,8 @@ static void dwxgmac2_map_mtl_to_dma(struct mac_device_i= nfo *hw, u32 queue, void __iomem *ioaddr =3D hw->pcsr; u32 value, reg; =20 - reg =3D (queue < 4) ? XGMAC_MTL_RXQ_DMA_MAP0 : XGMAC_MTL_RXQ_DMA_MAP1; - if (queue >=3D 4) - queue -=3D 4; + reg =3D XGMAC_MTL_RXQ_DMA_MAP0 + (queue & ~0x3); + queue &=3D 0x3; =20 value =3D readl(ioaddr + reg); value &=3D ~XGMAC_QxMDMACH(queue); diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h index ef67dba775d0..11671fd6adee 100644 --- a/include/linux/stmmac.h +++ b/include/linux/stmmac.h @@ -15,9 +15,9 @@ #include #include =20 -#define MTL_MAX_RX_QUEUES 8 -#define MTL_MAX_TX_QUEUES 8 -#define STMMAC_CH_MAX 8 +#define MTL_MAX_RX_QUEUES 16 +#define MTL_MAX_TX_QUEUES 16 +#define STMMAC_CH_MAX 16 =20 #define STMMAC_RX_COE_NONE 0 #define STMMAC_RX_COE_TYPE1 1 --=20 2.40.1 From nobody Sun Feb 8 09:10:49 2026 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 90C4AC001DE for ; Sun, 23 Jul 2023 16:22:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229829AbjGWQWv (ORCPT ); Sun, 23 Jul 2023 12:22:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43898 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229572AbjGWQWo (ORCPT ); Sun, 23 Jul 2023 12:22:44 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8899E199E; Sun, 23 Jul 2023 09:22:28 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 5C84D60DD4; Sun, 23 Jul 2023 16:22:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D7E87C433CC; Sun, 23 Jul 2023 16:22:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690129346; bh=bFmeinZ7Kd4jdsovg/FRP0oCfQ9tMqtvHuGgUp87Sic=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jUlutc8Wq9RHTJHU8NiAqatca/TXHO/zzlW/NhU0GQlQUU+9AZTz4ZIxmiPOq7XG2 Y3T8vqTs4kUXZ0m9EFID3JyhefavnkPjFCqzbVA98JgxHueVALbPjdz8nK8KufVmY2 Md55N/DMOllcQeh/Nt0mkPcYr2deyq/jAF9xKRgh4atvgP4cXxkNLcns+gRRKPG6tE r00R4th71LVs0jWurX5gq00mgvyYkEcbi7ITdatKx1aMRulWUrFQpFxGU7oMexkNyK u/0NPq/G2QRg9SMVCbD+vdCTz4HD7QZr4N6kiuxkC32rPnGbYveukqgQEHmOep6i1q TApI19ohxdilw== From: Jisheng Zhang To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH net-next 05/10] net: stmmac: rename multi_msi_en to perch_irq_en Date: Mon, 24 Jul 2023 00:10:24 +0800 Message-Id: <20230723161029.1345-6-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230723161029.1345-1-jszhang@kernel.org> References: <20230723161029.1345-1-jszhang@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The IP supports per channel interrupt, when intel adds the per channel interrupt support, the per channel irq is from MSI vector, but this feature can also be supported on non-MSI platforms. Renaming multi_msi_en to perch_irq_en to reflects this fact. Signed-off-by: Jisheng Zhang --- drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 4 ++-- drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c | 2 +- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 ++++---- include/linux/stmmac.h | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c b/drivers/ne= t/ethernet/stmicro/stmmac/dwmac-intel.c index 0ffae785d8bd..99a072907008 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c @@ -953,7 +953,7 @@ static int stmmac_config_single_msi(struct pci_dev *pde= v, =20 res->irq =3D pci_irq_vector(pdev, 0); res->wol_irq =3D res->irq; - plat->flags &=3D ~STMMAC_FLAG_MULTI_MSI_EN; + plat->flags &=3D ~STMMAC_FLAG_PERCH_IRQ_EN; dev_info(&pdev->dev, "%s: Single IRQ enablement successful\n", __func__); =20 @@ -1005,7 +1005,7 @@ static int stmmac_config_multi_msi(struct pci_dev *pd= ev, if (plat->msi_sfty_ue_vec < STMMAC_MSI_VEC_MAX) res->sfty_ue_irq =3D pci_irq_vector(pdev, plat->msi_sfty_ue_vec); =20 - plat->flags |=3D STMMAC_FLAG_MULTI_MSI_EN; + plat->flags |=3D STMMAC_FLAG_PERCH_IRQ_EN; dev_info(&pdev->dev, "%s: multi MSI enablement successful\n", __func__); =20 return 0; diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c b/drivers/net= /ethernet/stmicro/stmmac/dwmac4_dma.c index 84d3a8551b03..9bf8adf466a2 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c @@ -175,7 +175,7 @@ static void dwmac4_dma_init(void __iomem *ioaddr, =20 value =3D readl(ioaddr + DMA_BUS_MODE); =20 - if (dma_cfg->multi_msi_en) { + if (dma_cfg->perch_irq_en) { value &=3D ~DMA_BUS_MODE_INTM_MASK; value |=3D (DMA_BUS_MODE_INTM_MODE1 << DMA_BUS_MODE_INTM_SHIFT); } diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/ne= t/ethernet/stmicro/stmmac/stmmac_main.c index 15ed3947361b..c97bebfd04f8 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -3722,7 +3722,7 @@ static int stmmac_request_irq(struct net_device *dev) int ret; =20 /* Request the IRQ lines */ - if (priv->plat->flags & STMMAC_FLAG_MULTI_MSI_EN) + if (priv->plat->flags & STMMAC_FLAG_PERCH_IRQ_EN) ret =3D stmmac_request_irq_multi_msi(dev); else ret =3D stmmac_request_irq_single(dev); @@ -6007,7 +6007,7 @@ static void stmmac_poll_controller(struct net_device = *dev) if (test_bit(STMMAC_DOWN, &priv->state)) return; =20 - if (priv->plat->flags & STMMAC_FLAG_MULTI_MSI_EN) { + if (priv->plat->flags & STMMAC_FLAG_PERCH_IRQ_EN) { for (i =3D 0; i < priv->plat->rx_queues_to_use; i++) stmmac_msi_intr_rx(0, &priv->dma_conf.rx_queue[i]); =20 @@ -7278,8 +7278,8 @@ int stmmac_dvr_probe(struct device *device, priv->plat =3D plat_dat; priv->ioaddr =3D res->addr; priv->dev->base_addr =3D (unsigned long)res->addr; - priv->plat->dma_cfg->multi_msi_en =3D - (priv->plat->flags & STMMAC_FLAG_MULTI_MSI_EN); + priv->plat->dma_cfg->perch_irq_en =3D + (priv->plat->flags & STMMAC_FLAG_PERCH_IRQ_EN); =20 priv->dev->irq =3D res->irq; priv->wol_irq =3D res->wol_irq; diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h index 11671fd6adee..76249117c0ff 100644 --- a/include/linux/stmmac.h +++ b/include/linux/stmmac.h @@ -96,7 +96,7 @@ struct stmmac_dma_cfg { int mixed_burst; bool aal; bool eame; - bool multi_msi_en; + bool perch_irq_en; bool dche; }; =20 @@ -211,7 +211,7 @@ struct dwmac4_addrs { #define STMMAC_FLAG_TSO_EN BIT(4) #define STMMAC_FLAG_SERDES_UP_AFTER_PHY_LINKUP BIT(5) #define STMMAC_FLAG_VLAN_FAIL_Q_EN BIT(6) -#define STMMAC_FLAG_MULTI_MSI_EN BIT(7) +#define STMMAC_FLAG_PERCH_IRQ_EN BIT(7) #define STMMAC_FLAG_EXT_SNAPSHOT_EN BIT(8) #define STMMAC_FLAG_INT_SNAPSHOT_EN BIT(9) #define STMMAC_FLAG_RX_CLK_RUNS_IN_LPI BIT(10) --=20 2.40.1 From nobody Sun Feb 8 09:10:49 2026 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 A6320C001DE for ; Sun, 23 Jul 2023 16:23:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229595AbjGWQXD (ORCPT ); Sun, 23 Jul 2023 12:23:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44106 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229554AbjGWQW7 (ORCPT ); Sun, 23 Jul 2023 12:22:59 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 125CE1BFA; Sun, 23 Jul 2023 09:22:37 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8AC2360E0B; Sun, 23 Jul 2023 16:22:31 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3181EC433C8; Sun, 23 Jul 2023 16:22:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690129351; bh=ucsnwmWqR4ajtwvJh+GfJymKYMLxktOm7tZoJmtvJZc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AyDfYmJwoGoanHp/xBxMzNwo/cJheiN1a66a5+JT/+JbxfvGeZbhY0WcLEh9sp2xZ iMoHU4LlaESiLdQ4GU548+FHQ1ch6rj47ps7a0E3uW39U6fLpUI8vOQilzLMM9JsMy Ao1UbrGhMqQdh5+1NtBCkLIOSiWAMBqg5YaHNYcaaTYIuylOJwtVP5ybVdA1uFQzJU WNGM9nZUF7W6/aJ1PiwEW56ikB3CqahcjajRukn9f4pPPEsFXWaWLLhb5A+UcgSHyD dxc9+5L0mYd8HXYzekvLkWO9U7MVdU0fXkmC8NXQZq+ESXf4TiKufJj3eOO0/B53zg YeVY7AfuNmLSw== From: Jisheng Zhang To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH net-next 06/10] net: stmmac: xgmac: support per-channel irq Date: Mon, 24 Jul 2023 00:10:25 +0800 Message-Id: <20230723161029.1345-7-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230723161029.1345-1-jszhang@kernel.org> References: <20230723161029.1345-1-jszhang@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The IP supports per channel interrupt, add support for this usage case. Signed-off-by: Jisheng Zhang --- .../net/ethernet/stmicro/stmmac/dwxgmac2.h | 2 ++ .../ethernet/stmicro/stmmac/dwxgmac2_dma.c | 33 +++++++++++-------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h b/drivers/net/e= thernet/stmicro/stmmac/dwxgmac2.h index 81cbb13a101d..12e1228ccf2a 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h +++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h @@ -327,6 +327,8 @@ =20 /* DMA Registers */ #define XGMAC_DMA_MODE 0x00003000 +#define XGMAC_INTM GENMASK(13, 12) +#define XGMAC_INTM_MODE1 0x1 #define XGMAC_SWR BIT(0) #define XGMAC_DMA_SYSBUS_MODE 0x00003004 #define XGMAC_WR_OSR_LMT GENMASK(29, 24) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c b/drivers/n= et/ethernet/stmicro/stmmac/dwxgmac2_dma.c index b5ba4e0cca55..ef25af92d6cc 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c @@ -31,6 +31,13 @@ static void dwxgmac2_dma_init(void __iomem *ioaddr, value |=3D XGMAC_EAME; =20 writel(value, ioaddr + XGMAC_DMA_SYSBUS_MODE); + + if (dma_cfg->perch_irq_en) { + value =3D readl(ioaddr + XGMAC_DMA_MODE); + value &=3D ~XGMAC_INTM; + value |=3D FIELD_PREP(XGMAC_INTM, XGMAC_INTM_MODE1); + writel(value, ioaddr + XGMAC_DMA_MODE); + } } =20 static void dwxgmac2_dma_init_chan(struct stmmac_priv *priv, @@ -365,20 +372,20 @@ static int dwxgmac2_dma_interrupt(struct stmmac_priv = *priv, } =20 /* TX/RX NORMAL interrupts */ - if (likely(intr_status & XGMAC_NIS)) { - if (likely(intr_status & XGMAC_RI)) { - u64_stats_update_begin(&rx_q->rxq_stats.syncp); - rx_q->rxq_stats.rx_normal_irq_n++; - u64_stats_update_end(&rx_q->rxq_stats.syncp); - ret |=3D handle_rx; - } - if (likely(intr_status & (XGMAC_TI | XGMAC_TBU))) { - u64_stats_update_begin(&tx_q->txq_stats.syncp); - tx_q->txq_stats.tx_normal_irq_n++; - u64_stats_update_end(&tx_q->txq_stats.syncp); - ret |=3D handle_tx; - } + if (likely(intr_status & XGMAC_RI)) { + u64_stats_update_begin(&rx_q->rxq_stats.syncp); + rx_q->rxq_stats.rx_normal_irq_n++; + u64_stats_update_end(&rx_q->rxq_stats.syncp); + ret |=3D handle_rx; + } + if (likely(intr_status & XGMAC_TI)) { + u64_stats_update_begin(&tx_q->txq_stats.syncp); + tx_q->txq_stats.tx_normal_irq_n++; + u64_stats_update_end(&tx_q->txq_stats.syncp); + ret |=3D handle_tx; } + if (unlikely(intr_status & XGMAC_TBU)) + ret |=3D handle_tx; =20 /* Clear interrupts */ writel(intr_en & intr_status, ioaddr + XGMAC_DMA_CH_STATUS(chan)); --=20 2.40.1 From nobody Sun Feb 8 09:10:49 2026 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 70ED4C001DF for ; Sun, 23 Jul 2023 16:23:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229571AbjGWQXO (ORCPT ); Sun, 23 Jul 2023 12:23:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44316 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229692AbjGWQXF (ORCPT ); Sun, 23 Jul 2023 12:23:05 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BC10310D1; Sun, 23 Jul 2023 09:22:43 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 60A8E60E86; Sun, 23 Jul 2023 16:22:35 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C2245C433C9; Sun, 23 Jul 2023 16:22:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690129354; bh=M4Eba7JQy2lgUhZ/eOWiOdfCqNDYEzVkATepNOkg4FI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jOvbnl2BUJle/h5pYPzr+kYVhkMejvSw3/GGZqULllNFjpbhOMDD1SMaVNkTB9fhj TozGaLLcoKo23M+pz7O9iiz6EvOKeMlWszMxYcHFUBdH+efkSbQrg6Guale3QRTVez 0EJVtpGFJJSZFcnTzGHeAOj4BqFpIZ4jYNrzF9sp0p2N2uDjAbzjNCJl/TfJzcoyYQ HzGoZ+V2wDZKYuJQbTMRBltvJ4DrYUFvFHWSKr3S7xcal9Txjw3M2u13KL6Xu/Tu3G A0ULSwyzR36AYWwvKsKFbSdosjkAHWCcCmO5m7RSxXcoKA2b6tJY4vaeg285pA+u3y FfPCLgeoLv42g== From: Jisheng Zhang To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH net-next 07/10] dt-bindings: net: snps,dwmac: add safety irq support Date: Mon, 24 Jul 2023 00:10:26 +0800 Message-Id: <20230723161029.1345-8-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230723161029.1345-1-jszhang@kernel.org> References: <20230723161029.1345-1-jszhang@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The snps dwmac IP support safety features, and those Safety Feature Correctible Error and Uncorrectible Error irqs may be separate irqs. Signed-off-by: Jisheng Zhang Acked-by: Conor Dooley --- Documentation/devicetree/bindings/net/snps,dwmac.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Docume= ntation/devicetree/bindings/net/snps,dwmac.yaml index ddf9522a5dc2..bb80ca205d26 100644 --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml @@ -107,6 +107,8 @@ properties: - description: Combined signal for various interrupt events - description: The interrupt to manage the remote wake-up packet det= ection - description: The interrupt that occurs when Rx exits the LPI state + - description: The interrupt that occurs when Safety Feature Correct= ible Errors happen + - description: The interrupt that occurs when Safety Feature Uncorre= ctible Errors happen =20 interrupt-names: minItems: 1 @@ -114,6 +116,8 @@ properties: - const: macirq - enum: [eth_wake_irq, eth_lpi] - const: eth_lpi + - const: sfty_ce_irq + - const: sfty_ue_irq =20 clocks: minItems: 1 --=20 2.40.1 From nobody Sun Feb 8 09:10:49 2026 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 57D2DC00528 for ; Sun, 23 Jul 2023 16:23:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229663AbjGWQXj (ORCPT ); Sun, 23 Jul 2023 12:23:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44838 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229644AbjGWQXh (ORCPT ); Sun, 23 Jul 2023 12:23:37 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 064D91BCE; Sun, 23 Jul 2023 09:23:08 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 8F1E460DE1; Sun, 23 Jul 2023 16:22:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3B70DC433C7; Sun, 23 Jul 2023 16:22:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690129359; bh=MaxTaoMyyDWzQBV6I+FK3rgck7sS3ApGLGnjzW2cn+c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tFSME35aBjT6vZDW9QtPvsJj3vL8Jw7DHgV+gZyPMXkzG4NSP4D+lrFRLSXwXtbL9 zdLu1VVnA4MommD+Zf4IYG8ybqdroqfL0UEeXaChihhkq5IOJrqF+dV09mhxRIkvIQ KADe5leCtMBc9JMgAoL/RJp4DMANuD+9UPpQsNRAhLwrFAak9Q9DbTi727MJs+zqu9 Agb90tdhpyPnoWI98JCyWYupXpOv3/Uht+kStuVUUCMOt0MOGDhpZsZoE8F0Yj9Fc7 fVJhKx/xsOhbU6PGnMwLcyIC11xZf7rILVaOT2WasdCXAMEMquADxvCRHhWlzSQOVP h8x5Nmhhp50hw== From: Jisheng Zhang To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH net-next 08/10] net: stmmac: platform: support parsing safety irqs from DT Date: Mon, 24 Jul 2023 00:10:27 +0800 Message-Id: <20230723161029.1345-9-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230723161029.1345-1-jszhang@kernel.org> References: <20230723161029.1345-1-jszhang@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The snps dwmac IP may support safety features, and those Safety Feature Correctible Error and Uncorrectible Error irqs may be separate irqs. Add support to parse the safety irqs from DT. Signed-off-by: Jisheng Zhang --- .../net/ethernet/stmicro/stmmac/stmmac_platform.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/driver= s/net/ethernet/stmicro/stmmac/stmmac_platform.c index 23d53ea04b24..e1b7a3fefd1a 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c @@ -738,6 +738,18 @@ int stmmac_get_platform_resources(struct platform_devi= ce *pdev, dev_info(&pdev->dev, "IRQ eth_lpi not found\n"); } =20 + stmmac_res->sfty_ce_irq =3D platform_get_irq_byname_optional(pdev, "sfty_= ce_irq"); + if (stmmac_res->sfty_ce_irq < 0) { + if (stmmac_res->sfty_ce_irq =3D=3D -EPROBE_DEFER) + return -EPROBE_DEFER; + } + + stmmac_res->sfty_ue_irq =3D platform_get_irq_byname_optional(pdev, "sfty_= ue_irq"); + if (stmmac_res->sfty_ue_irq < 0) { + if (stmmac_res->sfty_ue_irq =3D=3D -EPROBE_DEFER) + return -EPROBE_DEFER; + } + stmmac_res->addr =3D devm_platform_ioremap_resource(pdev, 0); =20 return PTR_ERR_OR_ZERO(stmmac_res->addr); --=20 2.40.1 From nobody Sun Feb 8 09:10:49 2026 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 B856FC001DF for ; Sun, 23 Jul 2023 16:23:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230051AbjGWQXT (ORCPT ); Sun, 23 Jul 2023 12:23:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44074 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229945AbjGWQXM (ORCPT ); Sun, 23 Jul 2023 12:23:12 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9DBDD10C2; Sun, 23 Jul 2023 09:22:47 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 0966A60E05; Sun, 23 Jul 2023 16:22:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6CF1BC433C8; Sun, 23 Jul 2023 16:22:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690129362; bh=77r49RSSQhAozO3HusyMgOJivNEdF2Oycm6v24MDK60=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LbJaNcSBqDv3TqTL9DOpOFtVQAvmOZDNAcpGCIvWPiAC2ss+7LaTuU60MqlD3oTgS 9zdjwsNlMnz6VUppT+/I9iJyH5BjziWnzaae2/gm//cQwmkfhqPnjGNY7KcPEq2+ZS rgWhVRJaUs/QPnBKydu23WlOGcwokmagkMVqM/4YxcDEXm1irn67kRre/lpUYbbLSk tSJxCz/v6imyZGVT0Hn2/ZJYVroskvzK3TxOwHQT7M8l/+t1+OW/hdKSeDmDRpgby0 9HcL5rXrCzFT7VhH8g3m9QOQco33FQC+fw+ReDl5VuxORDQg2D3IIj1REb9QY6L4v5 SnGealjZlXjLQ== From: Jisheng Zhang To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH net-next 09/10] dt-bindings: net: snps,dwmac: add per channel irq support Date: Mon, 24 Jul 2023 00:10:28 +0800 Message-Id: <20230723161029.1345-10-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230723161029.1345-1-jszhang@kernel.org> References: <20230723161029.1345-1-jszhang@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The IP supports per channel interrupt, add support for this usage case. Signed-off-by: Jisheng Zhang --- .../devicetree/bindings/net/snps,dwmac.yaml | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Docume= ntation/devicetree/bindings/net/snps,dwmac.yaml index bb80ca205d26..525210c2c06c 100644 --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml @@ -101,6 +101,11 @@ properties: minItems: 1 maxItems: 2 =20 + snps,per-channel-interrupt: + $ref: /schemas/types.yaml#/definitions/flag + description: + Indicates that Rx and Tx complete will generate a unique interrupt f= or each channel + interrupts: minItems: 1 items: @@ -109,6 +114,8 @@ properties: - description: The interrupt that occurs when Rx exits the LPI state - description: The interrupt that occurs when Safety Feature Correct= ible Errors happen - description: The interrupt that occurs when Safety Feature Uncorre= ctible Errors happen + - description: All of the rx per-channel interrupts + - description: All of the tx per-channel interrupts =20 interrupt-names: minItems: 1 @@ -118,6 +125,22 @@ properties: - const: eth_lpi - const: sfty_ce_irq - const: sfty_ue_irq + - const: rx0 + - const: rx1 + - const: rx2 + - const: rx3 + - const: rx4 + - const: rx5 + - const: rx6 + - const: rx7 + - const: tx0 + - const: tx1 + - const: tx2 + - const: tx3 + - const: tx4 + - const: tx5 + - const: tx6 + - const: tx7 =20 clocks: minItems: 1 --=20 2.40.1 From nobody Sun Feb 8 09:10:49 2026 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 DE5B1C001DE for ; Sun, 23 Jul 2023 16:23:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229911AbjGWQXt (ORCPT ); Sun, 23 Jul 2023 12:23:49 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45012 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229692AbjGWQXq (ORCPT ); Sun, 23 Jul 2023 12:23:46 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 982B61BE4; Sun, 23 Jul 2023 09:23:18 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 71D5060E03; Sun, 23 Jul 2023 16:22:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DBE3FC433C9; Sun, 23 Jul 2023 16:22:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690129365; bh=qDI0Xb5iaQWdsQql8g8clSdLAw51YwA2gB/y/HlqbvM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=fVXln860LhUZcxF5EYN3gLM6af9tazNAY7YXKWeCJndIKqyXeMu8VBtbEEPrnnJJf pgz4q/ToKIP59p1+VzHxLLHDojPmJpfu0VZcIeBw499UMjt6dovJefE8Bm6ebXkBzE e3GORnARNutWgspjrF8VJVtzJFUV9kXshfdBhK3NLiM0tstmPOEX65Y/pLoCWvthUF yBj/TQlm45C85bQyDIsPSsVK6aGGJlJPVTuMfLewFSeD2ttgfHGRpi+lbPKHUa4+ds 01IoMUIfk6k+eucfSvTVZiopFDKcMOsJYKFFC1WCH56N91vHrSJnw54cSH8BS6irtC JMTiTPs3TaUMw== From: Jisheng Zhang To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Giuseppe Cavallaro , Alexandre Torgue , Jose Abreu Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org Subject: [PATCH net-next 10/10] net: stmmac: platform: support parsing per channel irq from DT Date: Mon, 24 Jul 2023 00:10:29 +0800 Message-Id: <20230723161029.1345-11-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230723161029.1345-1-jszhang@kernel.org> References: <20230723161029.1345-1-jszhang@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The snps dwmac IP may support per channel interrupt. Add support to parse the per channel irq from DT. Signed-off-by: Jisheng Zhang --- .../ethernet/stmicro/stmmac/stmmac_platform.c | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/driver= s/net/ethernet/stmicro/stmmac/stmmac_platform.c index e1b7a3fefd1a..16fff66c578b 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c @@ -539,10 +539,14 @@ stmmac_probe_config_dt(struct platform_device *pdev, = u8 *mac) if (of_device_is_compatible(np, "snps,dwxgmac")) { plat->has_xgmac =3D 1; plat->pmt =3D 1; + if (of_property_read_bool(np, "snps,tso")) plat->flags |=3D STMMAC_FLAG_TSO_EN; } =20 + if (of_property_read_bool(np, "snps,per-channel-interrupt")) + plat->flags |=3D STMMAC_FLAG_PERCH_IRQ_EN; + dma_cfg =3D devm_kzalloc(&pdev->dev, sizeof(*dma_cfg), GFP_KERNEL); if (!dma_cfg) { @@ -705,6 +709,9 @@ EXPORT_SYMBOL_GPL(stmmac_remove_config_dt); int stmmac_get_platform_resources(struct platform_device *pdev, struct stmmac_resources *stmmac_res) { + char irq_name[8]; + int i; + memset(stmmac_res, 0, sizeof(*stmmac_res)); =20 /* Get IRQ information early to have an ability to ask for deferred @@ -738,6 +745,26 @@ int stmmac_get_platform_resources(struct platform_devi= ce *pdev, dev_info(&pdev->dev, "IRQ eth_lpi not found\n"); } =20 + for (i =3D 0; i < MTL_MAX_RX_QUEUES; i++) { + snprintf(irq_name, sizeof(irq_name), "rx%i", i); + stmmac_res->rx_irq[i] =3D platform_get_irq_byname_optional(pdev, irq_nam= e); + if (stmmac_res->rx_irq[i] < 0) { + if (stmmac_res->rx_irq[i] =3D=3D -EPROBE_DEFER) + return -EPROBE_DEFER; + break; + } + } + + for (i =3D 0; i < MTL_MAX_TX_QUEUES; i++) { + snprintf(irq_name, sizeof(irq_name), "tx%i", i); + stmmac_res->tx_irq[i] =3D platform_get_irq_byname_optional(pdev, irq_nam= e); + if (stmmac_res->tx_irq[i] < 0) { + if (stmmac_res->tx_irq[i] =3D=3D -EPROBE_DEFER) + return -EPROBE_DEFER; + break; + } + } + stmmac_res->sfty_ce_irq =3D platform_get_irq_byname_optional(pdev, "sfty_= ce_irq"); if (stmmac_res->sfty_ce_irq < 0) { if (stmmac_res->sfty_ce_irq =3D=3D -EPROBE_DEFER) --=20 2.40.1