From patchwork Wed Aug 16 15:29:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 135890 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b82d:0:b0:3f2:4152:657d with SMTP id z13csp707316vqi; Thu, 17 Aug 2023 06:40:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGadxyISEOY+h33mJWCRUssqAKgeqndPB2NkaVieAaNJc+NgR4MWt6/y0f8f+3X/ljiOH9u X-Received: by 2002:aa7:c44d:0:b0:525:7e46:940 with SMTP id n13-20020aa7c44d000000b005257e460940mr4279951edr.24.1692279638550; Thu, 17 Aug 2023 06:40:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1692279638; cv=none; d=google.com; s=arc-20160816; b=B3hrchEz2YVW6SnqI/Bogu8swDgivutr3Gliz0SA+kLS/CVF6Zs1XrQoGuPXJc50cI 6rNVNZfa25Zw0AQFWE9PkJb1pPg7x178+Hu+erlGFB9hY0EOVPpvIAnKghYjqQFAKCKc MYr2gX8QFYRKF9yP+F8hZUb8ThOP+y5K26EcQwcfqWfP6jkypsHwf96j7UZbnBixAa9M w4DBk1+7vOPm4/2GXGzdJ+Kv+3Hqnfy2cRFOjBr/wS525qfoMHTHruPT6PMM35/SzZnO HV9fMyy89bIrEl65FAvzOwfBDXTwD9Lli+SeJkQX7Uxn/ttvKeu41O928cL+JeZVy+bF HLBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=++C5mPrnhtPQvW5Odc2sq6pdBeyMF55AXs3gpYqRfKw=; fh=UEVvRAFK6gmZxZNnJDUC7AmNk/iU78fiWA23OmiDi44=; b=Xep941IIonYbJpyYjWsmDclJ6+ZNzx2brf00r5iXEuhmXaLks+A/wBmsuX/BKEoMeB BIrorNbg2ex8stm3WRi1Pif+jbqt4C++FVuuCeWA1TBiBv6C4ur6mjSlouvlWjqnzWNN iqrolLgyY7vb7uCIERmrYu0HYDlNRp7izN6JqP14t9kgSk4RPVM7WIdeiJ3ASApTnY9N 4wynBpKNbmTyQzHc9gwwlNzOMR/IiLW0Rs/tYwd/PQcMauk6NJ4na+i0y2pHaSIrS5dJ sRqiPp0IPG6d7+MDAQep9+EzfpOWFgZ52j68EjHjPGNsV2dKrOG43QUY9FFY98le4v3q sHGw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=C9DDETRH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r11-20020aa7d58b000000b005256d6fdb23si5542540edq.58.2023.08.17.06.40.14; Thu, 17 Aug 2023 06:40:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=C9DDETRH; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344257AbjHPPln (ORCPT + 99 others); Wed, 16 Aug 2023 11:41:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54314 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344219AbjHPPlV (ORCPT ); Wed, 16 Aug 2023 11:41:21 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7042F26A6; Wed, 16 Aug 2023 08:41:20 -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 0EB4D64577; Wed, 16 Aug 2023 15:41:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6EDDAC433C8; Wed, 16 Aug 2023 15:41:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692200479; bh=nrZBBHIvwoY7+NGVTUVo+wQxGv/rQfcOhG+8CHuUfbw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C9DDETRHcmDn3/sjpx52V0ObTTzXJ88g3duA+PD4y0N2+ENXQpaqYfP1KCUg6CsQF cd8lPDX80SN4yQo5cc/HQ7ZK+j4MTYNyGi66qcc2R/WLTn7oIgUGEMGOF3EB4ZFBNd hTYzpuggcWcvg6SUX8PL2M8sMTDpciHjTHKn1WtclbXgkaavZ2E3lF/6pJIZWD+Zfi WBpgcapVp6pEypxnImqKGbudMs8zBd2UuFuLmW5vSLBtK6x/VNjxzNhhOvJ8AsF7ha G9VE0inA/4S1/mB+/Df5yxPCtXI1iD9jPQ61ur3FKetxVOCRUaeXtS7kWWRncwj/MV NuImxW7m1C9RA== 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 v4 2/9] net: stmmac: xgmac: add more feature parsing from hw cap Date: Wed, 16 Aug 2023 23:29:19 +0800 Message-Id: <20230816152926.4093-3-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230816152926.4093-1-jszhang@kernel.org> References: <20230816152926.4093-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1774483814683957533 X-GMAIL-MSGID: 1774483814683957533 The XGMAC_HWFEAT_GMIISEL bit also indicates whether support 10/100Mbps or not. Signed-off-by: Jisheng Zhang Acked-by: Alexandre TORGUE --- drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c index 3aacf791efeb..1ef8fc132c2d 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c @@ -410,6 +410,7 @@ static int dwxgmac2_get_hw_feature(void __iomem *ioaddr, dma_cap->vlhash = (hw_cap & XGMAC_HWFEAT_VLHASH) >> 4; dma_cap->half_duplex = (hw_cap & XGMAC_HWFEAT_HDSEL) >> 3; dma_cap->mbps_1000 = (hw_cap & XGMAC_HWFEAT_GMIISEL) >> 1; + dma_cap->mbps_10_100 = (hw_cap & XGMAC_HWFEAT_GMIISEL) >> 1; /* MAC HW feature 1 */ hw_cap = readl(ioaddr + XGMAC_HW_FEATURE1); From patchwork Wed Aug 16 15:29:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 136292 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b82d:0:b0:3f2:4152:657d with SMTP id z13csp2596589vqi; Sun, 20 Aug 2023 11:18:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFppuiu1lc8xxbxS6VMRE5G4+pipFWWADZlCwv40LdtkZ+d2Dy6otj9YyToAdxBbOpH9bZj X-Received: by 2002:a05:6a20:6a28:b0:147:fd40:2482 with SMTP id p40-20020a056a206a2800b00147fd402482mr3409209pzk.44.1692555511392; Sun, 20 Aug 2023 11:18:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1692555511; cv=none; d=google.com; s=arc-20160816; b=UuKkTun5Z6CIdnu8zvDYBLUetFguW2A0m1DsLbOTw/HJ3D3Qv5a9lhHCv7ApWYdJ9E aAJotaTD6RDKj542q/4w31hkdVNcDDgoiEy+++TP6Cx5ZhYX4e7w+SC5CXs4VuFmQEFg FadfDx+iVnu5UU2HB8bAFioXjkHGtI0voXCG9rrBFvW27JWG3a+WRI+WucT7NFI2UGRc iy8EjrIOak7FMx93gGLFS5+XpIhuU3eqNJ/PPBywgYHzzaXNP/CIMiunmlZXnajup1oZ Q3GlFJFsouDfLYGxCfL40qt7S+O/JqNnTBOGbdAT9OBD4b4sSIBy9s8h1kkpS1yTBguB 3Mig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=/eBPc95hue3jTQgds4tOdrCO9/twTcZ6uq9u99Legyw=; fh=UEVvRAFK6gmZxZNnJDUC7AmNk/iU78fiWA23OmiDi44=; b=nxzqu9w07daec7CBKl39EYTO38smfsmCHs/rQ//v9L5CMs869eoWOTz56QVHbB1rWS S1YS0KGJrci57avCPZHWCA/Y1GO5CfNjnRdsGnr8koObMuJaX1kD4DgQ/TOMZREoLC9i kOss3/qofa2pVWUd/Yf/ZeWkK8QiPivnfb6dlc3jlLAaGIaPpfAb2bjTJMUkvQMzxDje uwIHf26Yj907wnMfYhaXpJ/sFCWz2EqRbEAMly89eJy+wWekWw/AaRKLaNnmLH8kLEZH RewqwQqv+7HepnACZo8lwLgBeC88pzFfOhTPj/5x0GRgAA1sLv4yO8ZKnYFTMCjDm7f7 BJMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ICKHeDjS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id j13-20020a170902f24d00b001b53a3fbcc3si5296153plc.328.2023.08.20.11.18.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 20 Aug 2023 11:18:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=ICKHeDjS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 7225B351754; Sat, 19 Aug 2023 12:05:51 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344269AbjHPPlp (ORCPT + 99 others); Wed, 16 Aug 2023 11:41:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47150 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344233AbjHPPlb (ORCPT ); Wed, 16 Aug 2023 11:41:31 -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 2D3C826AA; Wed, 16 Aug 2023 08:41:30 -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 B6EB364B41; Wed, 16 Aug 2023 15:41:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 57E4DC433CC; Wed, 16 Aug 2023 15:41:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692200489; bh=VhGYQm/v6CCPb8FZ2A5lzNUx1w/ato3kcEAVi501AEE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ICKHeDjSPBPwClUV3I0zhWQzgPJ0oKNldBMv1hsz9nFlXzeKZaio2ODKe4emaQk5W IhlgY3YQi3047p6gZve44x6RAyqfan3cLZ2Ef/NnTCnb0ilVKuTu9N/qN/ZTnEfNF4 t4UnCsm0CsCWlpg2exFtkcSvuuvsMlToc52wjiWnq7sScrydVBfAjPQXUa3HGZUHnf /EnD5keuAwV+JPQDRIIcUtr3tCI0Zhxi9TeQiHwxThQv59wGpzP4hjAANgnhqDc0On 23BESRpoGKBdORIfgVWK7BqKSBwVle4YdvAAdN8yN//b+vs2wWWx4R9F0xxW8fT21W rl5a3dEIdbIrg== 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 v4 4/9] net: stmmac: reflect multi irqs for tx/rx channels and mac and safety Date: Wed, 16 Aug 2023 23:29:21 +0800 Message-Id: <20230816152926.4093-5-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230816152926.4093-1-jszhang@kernel.org> References: <20230816152926.4093-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1774773088306897689 X-GMAIL-MSGID: 1774773088306897689 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. Do some necessary renaming to reflects this fact. Signed-off-by: Jisheng Zhang --- .../net/ethernet/stmicro/stmmac/dwmac-intel.c | 4 +- .../net/ethernet/stmicro/stmmac/dwmac4_dma.c | 2 +- .../net/ethernet/stmicro/stmmac/stmmac_main.c | 48 +++++++++---------- include/linux/stmmac.h | 4 +- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c index 979c755964b1..9050de31ed76 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c @@ -952,7 +952,7 @@ static int stmmac_config_single_msi(struct pci_dev *pdev, res->irq = pci_irq_vector(pdev, 0); res->wol_irq = res->irq; - plat->flags &= ~STMMAC_FLAG_MULTI_MSI_EN; + plat->flags &= ~STMMAC_FLAG_PERCH_IRQ_EN; dev_info(&pdev->dev, "%s: Single IRQ enablement successful\n", __func__); @@ -1004,7 +1004,7 @@ static int stmmac_config_multi_msi(struct pci_dev *pdev, if (plat->msi_sfty_ue_vec < STMMAC_MSI_VEC_MAX) res->sfty_ue_irq = pci_irq_vector(pdev, plat->msi_sfty_ue_vec); - plat->flags |= STMMAC_FLAG_MULTI_MSI_EN; + plat->flags |= STMMAC_FLAG_PERCH_IRQ_EN; dev_info(&pdev->dev, "%s: multi MSI enablement successful\n", __func__); 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, value = readl(ioaddr + DMA_BUS_MODE); - if (dma_cfg->multi_msi_en) { + if (dma_cfg->perch_irq_en) { value &= ~DMA_BUS_MODE_INTM_MASK; value |= (DMA_BUS_MODE_INTM_MODE1 << DMA_BUS_MODE_INTM_SHIFT); } diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 3d90ca983389..64c55024d69d 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -126,11 +126,11 @@ module_param(chain_mode, int, 0444); MODULE_PARM_DESC(chain_mode, "To use chain instead of ring mode"); static irqreturn_t stmmac_interrupt(int irq, void *dev_id); -/* For MSI interrupts handling */ +/* For multi channel interrupts handling */ static irqreturn_t stmmac_mac_interrupt(int irq, void *dev_id); static irqreturn_t stmmac_safety_interrupt(int irq, void *dev_id); -static irqreturn_t stmmac_msi_intr_tx(int irq, void *data); -static irqreturn_t stmmac_msi_intr_rx(int irq, void *data); +static irqreturn_t stmmac_queue_intr_tx(int irq, void *data); +static irqreturn_t stmmac_queue_intr_rx(int irq, void *data); static void stmmac_reset_rx_queue(struct stmmac_priv *priv, u32 queue); static void stmmac_reset_tx_queue(struct stmmac_priv *priv, u32 queue); static void stmmac_reset_queues_param(struct stmmac_priv *priv); @@ -3520,7 +3520,7 @@ static void stmmac_free_irq(struct net_device *dev, } } -static int stmmac_request_irq_multi_msi(struct net_device *dev) +static int stmmac_request_irq_multi_channel(struct net_device *dev) { struct stmmac_priv *priv = netdev_priv(dev); enum request_irq_err irq_err; @@ -3537,7 +3537,7 @@ static int stmmac_request_irq_multi_msi(struct net_device *dev) 0, int_name, dev); if (unlikely(ret < 0)) { netdev_err(priv->dev, - "%s: alloc mac MSI %d (error: %d)\n", + "%s: alloc mac irq %d (error: %d)\n", __func__, dev->irq, ret); irq_err = REQ_IRQ_ERR_MAC; goto irq_error; @@ -3554,7 +3554,7 @@ static int stmmac_request_irq_multi_msi(struct net_device *dev) 0, int_name, dev); if (unlikely(ret < 0)) { netdev_err(priv->dev, - "%s: alloc wol MSI %d (error: %d)\n", + "%s: alloc wol irq %d (error: %d)\n", __func__, priv->wol_irq, ret); irq_err = REQ_IRQ_ERR_WOL; goto irq_error; @@ -3572,7 +3572,7 @@ static int stmmac_request_irq_multi_msi(struct net_device *dev) 0, int_name, dev); if (unlikely(ret < 0)) { netdev_err(priv->dev, - "%s: alloc lpi MSI %d (error: %d)\n", + "%s: alloc lpi irq %d (error: %d)\n", __func__, priv->lpi_irq, ret); irq_err = REQ_IRQ_ERR_LPI; goto irq_error; @@ -3590,7 +3590,7 @@ static int stmmac_request_irq_multi_msi(struct net_device *dev) 0, int_name, dev); if (unlikely(ret < 0)) { netdev_err(priv->dev, - "%s: alloc sfty ce MSI %d (error: %d)\n", + "%s: alloc sfty ce irq %d (error: %d)\n", __func__, priv->sfty_ce_irq, ret); irq_err = REQ_IRQ_ERR_SFTY_CE; goto irq_error; @@ -3608,14 +3608,14 @@ static int stmmac_request_irq_multi_msi(struct net_device *dev) 0, int_name, dev); if (unlikely(ret < 0)) { netdev_err(priv->dev, - "%s: alloc sfty ue MSI %d (error: %d)\n", + "%s: alloc sfty ue irq %d (error: %d)\n", __func__, priv->sfty_ue_irq, ret); irq_err = REQ_IRQ_ERR_SFTY_UE; goto irq_error; } } - /* Request Rx MSI irq */ + /* Request Rx queue irq */ for (i = 0; i < priv->plat->rx_queues_to_use; i++) { if (i >= MTL_MAX_RX_QUEUES) break; @@ -3625,11 +3625,11 @@ static int stmmac_request_irq_multi_msi(struct net_device *dev) int_name = priv->int_name_rx_irq[i]; sprintf(int_name, "%s:%s-%d", dev->name, "rx", i); ret = request_irq(priv->rx_irq[i], - stmmac_msi_intr_rx, + stmmac_queue_intr_rx, 0, int_name, &priv->dma_conf.rx_queue[i]); if (unlikely(ret < 0)) { netdev_err(priv->dev, - "%s: alloc rx-%d MSI %d (error: %d)\n", + "%s: alloc rx-%d irq %d (error: %d)\n", __func__, i, priv->rx_irq[i], ret); irq_err = REQ_IRQ_ERR_RX; irq_idx = i; @@ -3640,7 +3640,7 @@ static int stmmac_request_irq_multi_msi(struct net_device *dev) irq_set_affinity_hint(priv->rx_irq[i], &cpu_mask); } - /* Request Tx MSI irq */ + /* Request Tx queue irq */ for (i = 0; i < priv->plat->tx_queues_to_use; i++) { if (i >= MTL_MAX_TX_QUEUES) break; @@ -3650,11 +3650,11 @@ static int stmmac_request_irq_multi_msi(struct net_device *dev) int_name = priv->int_name_tx_irq[i]; sprintf(int_name, "%s:%s-%d", dev->name, "tx", i); ret = request_irq(priv->tx_irq[i], - stmmac_msi_intr_tx, + stmmac_queue_intr_tx, 0, int_name, &priv->dma_conf.tx_queue[i]); if (unlikely(ret < 0)) { netdev_err(priv->dev, - "%s: alloc tx-%d MSI %d (error: %d)\n", + "%s: alloc tx-%d irq %d (error: %d)\n", __func__, i, priv->tx_irq[i], ret); irq_err = REQ_IRQ_ERR_TX; irq_idx = i; @@ -3729,8 +3729,8 @@ static int stmmac_request_irq(struct net_device *dev) int ret; /* Request the IRQ lines */ - if (priv->plat->flags & STMMAC_FLAG_MULTI_MSI_EN) - ret = stmmac_request_irq_multi_msi(dev); + if (priv->plat->flags & STMMAC_FLAG_PERCH_IRQ_EN) + ret = stmmac_request_irq_multi_channel(dev); else ret = stmmac_request_irq_single(dev); @@ -5945,7 +5945,7 @@ static irqreturn_t stmmac_safety_interrupt(int irq, void *dev_id) return IRQ_HANDLED; } -static irqreturn_t stmmac_msi_intr_tx(int irq, void *data) +static irqreturn_t stmmac_queue_intr_tx(int irq, void *data) { struct stmmac_tx_queue *tx_q = (struct stmmac_tx_queue *)data; struct stmmac_dma_conf *dma_conf; @@ -5977,7 +5977,7 @@ static irqreturn_t stmmac_msi_intr_tx(int irq, void *data) return IRQ_HANDLED; } -static irqreturn_t stmmac_msi_intr_rx(int irq, void *data) +static irqreturn_t stmmac_queue_intr_rx(int irq, void *data) { struct stmmac_rx_queue *rx_q = (struct stmmac_rx_queue *)data; struct stmmac_dma_conf *dma_conf; @@ -6014,12 +6014,12 @@ static void stmmac_poll_controller(struct net_device *dev) if (test_bit(STMMAC_DOWN, &priv->state)) return; - if (priv->plat->flags & STMMAC_FLAG_MULTI_MSI_EN) { + if (priv->plat->flags & STMMAC_FLAG_PERCH_IRQ_EN) { for (i = 0; i < priv->plat->rx_queues_to_use; i++) - stmmac_msi_intr_rx(0, &priv->dma_conf.rx_queue[i]); + stmmac_queue_intr_rx(0, &priv->dma_conf.rx_queue[i]); for (i = 0; i < priv->plat->tx_queues_to_use; i++) - stmmac_msi_intr_tx(0, &priv->dma_conf.tx_queue[i]); + stmmac_queue_intr_tx(0, &priv->dma_conf.tx_queue[i]); } else { disable_irq(dev->irq); stmmac_interrupt(dev->irq, dev); @@ -7300,8 +7300,8 @@ int stmmac_dvr_probe(struct device *device, priv->plat = plat_dat; priv->ioaddr = res->addr; priv->dev->base_addr = (unsigned long)res->addr; - priv->plat->dma_cfg->multi_msi_en = - (priv->plat->flags & STMMAC_FLAG_MULTI_MSI_EN); + priv->plat->dma_cfg->perch_irq_en = + (priv->plat->flags & STMMAC_FLAG_PERCH_IRQ_EN); priv->dev->irq = res->irq; priv->wol_irq = res->wol_irq; diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h index 9c90e2e295d4..c052c222fa3e 100644 --- a/include/linux/stmmac.h +++ b/include/linux/stmmac.h @@ -98,7 +98,7 @@ struct stmmac_dma_cfg { int mixed_burst; bool aal; bool eame; - bool multi_msi_en; + bool perch_irq_en; bool dche; }; @@ -213,7 +213,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) From patchwork Wed Aug 16 15:29:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 135828 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b82d:0:b0:3f2:4152:657d with SMTP id z13csp322470vqi; Wed, 16 Aug 2023 15:31:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGQbrgLRvm/92gRK2UWTk+SdAdikn+87KEgqD1C87B+5jXjIrJBVYRcwRyhcn8+0ghL1KjT X-Received: by 2002:a17:907:a067:b0:99c:570a:e23e with SMTP id ia7-20020a170907a06700b0099c570ae23emr3030069ejc.24.1692225096371; Wed, 16 Aug 2023 15:31:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1692225096; cv=none; d=google.com; s=arc-20160816; b=uhZ1Lzn6izw0Ub7lmF1YNout8A92+1+WbjbiqyK8b9gZAbnxqZltHiY0mSca6ll0Ne 0AvFHLDwQ+8tUjS/I8/tPRpNDwNs0BuNPDBcq77WA+MC2siWGxrkQg+tr1NreeaOk226 JoiuV9mreqbQCLjnX81mMmTGh/YKNxes+qasCz6RVpEkfXaZq8QdRLVeXw+hgw4TOtJx LUOF8BIUsN8N+qdz8n2m8gC8u/z5Q2h1Y/b616f3zGee9syeUScptWU8m0oHAwg2ARx0 b4wFTi/u0/UALxp0Jcs1H8WB9WcPnNUTBUcSr4LKP97YQpbFHlM37qHk41N/4WJikb8Q d80Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=lYOTOlFRdOvI1Qa3ZjGmOm2wvaDkXlSmNuFNrye/rx4=; fh=UEVvRAFK6gmZxZNnJDUC7AmNk/iU78fiWA23OmiDi44=; b=KcSeCuQxUphK8cAOIW5KHEs/N84yjrZG7rO79+fh+AiXd54OGVURWKGe1eK6crSmzX tghT20O059zc7/SRk48aOFaZA2tUw5KunLV8yr+egHoj6TGxVBylolYtKJN0t6fsOh1K M9JKyaxSumlmhOpOImyyjtCa4A7OxmTl2QAt+RLK+TuElV9kINBe2Z9E6Om7G3T7DwP6 u+N3480che5ce0d9Vn3C87X+zpbKCnatyyxKM+O5ennazbbSb30tq95jCXGBISIMEJs+ HuzXznvhMGGXoQ5wIYNt1pN+OxeQb0LCudszcbDOrwn4blQbvo55HRgDYf/0dddfrbaU T6QA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=HYmwtffM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b8-20020a170906038800b0098dd7716952si11609612eja.527.2023.08.16.15.31.12; Wed, 16 Aug 2023 15:31:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=HYmwtffM; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344275AbjHPPlr (ORCPT + 99 others); Wed, 16 Aug 2023 11:41:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47182 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344239AbjHPPlf (ORCPT ); Wed, 16 Aug 2023 11:41:35 -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 7A65E26A6; Wed, 16 Aug 2023 08:41:34 -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 0DBCD647BB; Wed, 16 Aug 2023 15:41:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8A5C9C433C8; Wed, 16 Aug 2023 15:41:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692200493; bh=H6r17igTApBMtumIbML4/Pv00+k0irJssUyt+I4FyfE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HYmwtffMatnPnocbWJxD0WanE0n4nt2psNqEqbaW7U0oRvWY5AvmE+j3mLM+kjMTY 5+2zAY+PnA0edjGw+9nR9lMPmUOubqiA8n2Fnm0UL5Boltq/5QmBEEgPmBsuGys6wx LEMI2syqgB6BwygNksYMc85LvKfXK3qK7TLuu443voQ+cas1rAohgzqGBsYetRFluO 4kOTbZK0XNgWVYbnSb4O15wPBreio1l2+4hwvBPKj1/ey2tbjt0REtg1g4zAn9G7vA 9KAuy7LJ7b06h/kU/v1itA78ExYdGQfyp/adnQmh4/qxKKkfcAaHUulOFJgqVDZjV0 +88VGiAzoB8RA== 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 v4 5/9] net: stmmac: xgmac: support per-channel irq Date: Wed, 16 Aug 2023 23:29:22 +0800 Message-Id: <20230816152926.4093-6-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230816152926.4093-1-jszhang@kernel.org> References: <20230816152926.4093-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1774426622606667837 X-GMAIL-MSGID: 1774426622606667837 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/ethernet/stmicro/stmmac/dwxgmac2.h index 7f68bef456b7..18a042834d75 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h +++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2.h @@ -340,6 +340,8 @@ /* 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/net/ethernet/stmicro/stmmac/dwxgmac2_dma.c index 1ef8fc132c2d..ce228c362403 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 |= XGMAC_EAME; writel(value, ioaddr + XGMAC_DMA_SYSBUS_MODE); + + if (dma_cfg->perch_irq_en) { + value = readl(ioaddr + XGMAC_DMA_MODE); + value &= ~XGMAC_INTM; + value |= FIELD_PREP(XGMAC_INTM, XGMAC_INTM_MODE1); + writel(value, ioaddr + XGMAC_DMA_MODE); + } } static void dwxgmac2_dma_init_chan(struct stmmac_priv *priv, @@ -365,20 +372,20 @@ static int dwxgmac2_dma_interrupt(struct stmmac_priv *priv, } /* 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 |= 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 |= 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 |= 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 |= handle_tx; } + if (unlikely(intr_status & XGMAC_TBU)) + ret |= handle_tx; /* Clear interrupts */ writel(intr_en & intr_status, ioaddr + XGMAC_DMA_CH_STATUS(chan)); From patchwork Wed Aug 16 15:29:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 135958 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b82d:0:b0:3f2:4152:657d with SMTP id z13csp999811vqi; Thu, 17 Aug 2023 14:55:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEmAwU8QhK3ruhW/wNJXJMejM+yWkTP0gEl9pGawVVmOj3cvB7pIg1JqJwbQ3AKmsvBw3AP X-Received: by 2002:a17:902:6b86:b0:1bd:b7ad:a584 with SMTP id p6-20020a1709026b8600b001bdb7ada584mr611529plk.44.1692309342151; Thu, 17 Aug 2023 14:55:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1692309342; cv=none; d=google.com; s=arc-20160816; b=YbnhHAhXEo3LvpH1tn4CMWAZ2esrzUZoj3L4BIBHxFi7NOzLLg32LytbVhluJpFp8v JsQ/zQpdGVif0u2I1AkLksADm5qYjt+x/Wc+9e1Gsx0K6nKYFgUqwfHCZqnU1bndQZco rHGbg5v1ocAOhjoY5JVN+B78SuDHPqrSxDhS35F295eEPYygqwg16dp/fOQw/jc4qEWS qdxRaetmRkU9QAvAHA8WkfPxu/hSTiHsLkfrIGGOY/ftMYPW1HGrtfq3JK1LV1MqhMhp aYzN/W/fP3MEc3DCuSWbC7x1W0gRHw3skD2cu+IGeo5Sjb8NbEUHOELhAE7fAlGXxxLy X/Iw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=KzW0wn23f8/M6eEDsNbepPb1IrT27TKzzrJPMnB+Hcs=; fh=UEVvRAFK6gmZxZNnJDUC7AmNk/iU78fiWA23OmiDi44=; b=NK0lro/A15ceH2ecFER97bxXnDJhKwgQvo4BJRuy3Jx9xPJhO6mcnj285mCbU0oD50 UaCerCWhNh5ZV6BQDyw+FhBce8zoPz52NY+3cZp3yfSV4cUyl6WNLJ//0S94csOGQ4FZ 8DBoV5oopwxnR+fn702ps7BsCfwn5VY5htWXymGte/ENE94rqGOGD1M2b1vjXYjpwzwr lJusUI2JXMb2TydN3+DsRaEhMq9XFlZba3bpv32knZbyBxHa5JvTtHCc0os5wByNjj2i TZN0JdBJyR2zCzauARU1ny4NDFkV3HCMFFjWPx39NRjUVwBbnWl/fyRoHh+9C056ZV4P GALw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=us4YEJrI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x64-20020a638643000000b0055391572218si240459pgd.26.2023.08.17.14.55.28; Thu, 17 Aug 2023 14:55:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=us4YEJrI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344220AbjHPPmM (ORCPT + 99 others); Wed, 16 Aug 2023 11:42:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58390 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344246AbjHPPlk (ORCPT ); Wed, 16 Aug 2023 11:41:40 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7BA3C26A6; Wed, 16 Aug 2023 08:41:39 -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 19ACE64BBE; Wed, 16 Aug 2023 15:41:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D3590C433C9; Wed, 16 Aug 2023 15:41:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692200498; bh=W7ECQIQKfvKMVwcR9VbSxLGQ7/jrBCtA74xsM15z9nY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=us4YEJrIjLgKQxbwGjwCLfE6bE3pafzZjx4+B1IVzGtfxbATVImmtgqswUEx7AX0s nBevXHzge5vCXJOGA2h/yJR7uiWdyIxu1iiqE0OA04Dfm29ViYnQcnFMYOTEVCkw5h 4iERHf0xu2KiQGHt6LCFqt5ngziHzveSCCCNIjmKYA0cLmWf+UTxoY0uhj2ObRYLZ0 PK2KYD426Fczi8sfmCgrTZ0kTvoua4ijGULP5KMQHI57jJP4FsEqCsEvwtdkl/Pm3f IQ+FIn8cJuYd6MC3DRtQnbye3Blvp/dE7PsloZ/xSgDj0rqRRfjXoeoLvGgr3mOWLJ MboC8CXUc7GJg== 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 v4 6/9] dt-bindings: net: snps,dwmac: add safety irq support Date: Wed, 16 Aug 2023 23:29:23 +0800 Message-Id: <20230816152926.4093-7-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230816152926.4093-1-jszhang@kernel.org> References: <20230816152926.4093-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1774514960594133368 X-GMAIL-MSGID: 1774514960594133368 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 --- Documentation/devicetree/bindings/net/snps,dwmac.yaml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml index ddf9522a5dc2..b8d01bba6e1a 100644 --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml @@ -107,13 +107,18 @@ properties: - description: Combined signal for various interrupt events - description: The interrupt to manage the remote wake-up packet detection - description: The interrupt that occurs when Rx exits the LPI state + - description: The interrupt that occurs when Safety Feature Correctible Errors happen + - description: The interrupt that occurs when Safety Feature Uncorrectible Errors happen interrupt-names: minItems: 1 items: - const: macirq - - enum: [eth_wake_irq, eth_lpi] - - const: eth_lpi + - enum: + - eth_wake_irq + - eth_lpi + - sfty_ce + - sfty_ue clocks: minItems: 1 From patchwork Wed Aug 16 15:29:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 135815 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b82d:0:b0:3f2:4152:657d with SMTP id z13csp260580vqi; Wed, 16 Aug 2023 13:14:31 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH3RkaAHYFWygkb7H/M2IzLGX2Df+v9/PJAFk4wWqLJIYf2KalqCHinW2o7Kn+xEngO02co X-Received: by 2002:a17:906:cc4f:b0:98d:cd3e:c193 with SMTP id mm15-20020a170906cc4f00b0098dcd3ec193mr2254807ejb.46.1692216871249; Wed, 16 Aug 2023 13:14:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1692216871; cv=none; d=google.com; s=arc-20160816; b=pqAM9jYGXHg4ykBYkNi3gnFVllU12pGYexTSCFbAGGrICfTM+cbFj6cyQoLKgMnfOe R3LYb/WkzPGUJt7f7Kl7ZAEuSFaoIlunJ3NveYs5p1J3LNlQMRwaPTawErtghMZXeAPd tS9F2Mpr9GpdaS+hXO2uoM2m7VkIi4htxa2tY25+4C2OLZk0T8sOxOL0/dqUK7pFTygL bbC8oPRsUO2kT9FfXsUupe8yhtPKN7Sl/CHZO60+M2mjb9UwelfqjZmlNN4MxEim+Zvi R+nE6rQgeWCEUoX5BZh3X0NU8FdmEKZNVudj7ztJ9tNxVwi23sORGeZirVbE9WKxLiSx 1E7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=UKqID6rm8oCeIZir75saVvNtQQrbVyFJePhzr5Cquqk=; fh=UEVvRAFK6gmZxZNnJDUC7AmNk/iU78fiWA23OmiDi44=; b=Wmcj7pkQRvr/LhjbPnUILWkrMeNeXL7n1dJNzSlymNSZvwYLLOmbrGlINo3heCLj/L UJTmvUlja0M86Hsa+TuthA60L9OWJLtgDBedl6CL+GIv5pvpsK6gGwZgLyvBBGwDQnZo eznKjQ7qeUiu4j7zEEDumcJ+a4fJ6OWSJOndSucgl33lLiLfg5moEwjh68AoHaRLUzf9 9Hw04ye/pPRNsnHG13jW6iM4xSOknIgMb0uyIR/sL33VDWMf0x0ixEE14PG1/DpZvFwV ZVtOP2rFO0zmPq6mIcsxD2u8f4M6Oz3ORNwbZyoezXTu6OE4h1czH1GtZYMNmu+ReMvQ huLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=V8sQgiso; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j13-20020a170906254d00b00997dbbda750si11215714ejb.839.2023.08.16.13.14.07; Wed, 16 Aug 2023 13:14:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=V8sQgiso; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244088AbjHPPmO (ORCPT + 99 others); Wed, 16 Aug 2023 11:42:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58406 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344219AbjHPPln (ORCPT ); Wed, 16 Aug 2023 11:41:43 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EC6C426A6; Wed, 16 Aug 2023 08:41:42 -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 8A1EB65150; Wed, 16 Aug 2023 15:41:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DFA46C433C7; Wed, 16 Aug 2023 15:41:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692200502; bh=kv75d6y4CuM21MoxPELNwCryPzdrLaz2U6/TZ1c2g/I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V8sQgisoo15AHP3j6yHL9E3pgXFlue0Sq+NgZp1L8JyIfxnDSEteT6T+ROFOvk367 W6XX6TcGdPRX3GSu0ZlqjSwl8IBhmyd5f8TqJrHx/r+WaWuUoQHTY1/8Ag6I2LdUvB 6oTGcLA8h6UbSwMQJ03n+Mxfr4yHUiLKPxwKvADu48ifLdYwBam5eJPgZ64KuqhbT9 5tgtmhn7bRElDi+VvdpdHNyAY7kaCP9gHDSM5SX/wrILVJ2lSklRMGIWu5VG0CIWND 15C/PXB8sbhNotlqujxMS/y/HYYbQdp/He0lXm/NzSS5aogoaJimyfONRYRXkvIRDT gKsMlJoD2pIaA== 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 v4 7/9] net: stmmac: platform: support parsing safety irqs from DT Date: Wed, 16 Aug 2023 23:29:24 +0800 Message-Id: <20230816152926.4093-8-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230816152926.4093-1-jszhang@kernel.org> References: <20230816152926.4093-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1774417998083109302 X-GMAIL-MSGID: 1774417998083109302 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 Acked-by: Alexandre TORGUE --- .../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/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c index be8e79c7aa34..4a2002eea870 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c @@ -737,6 +737,18 @@ int stmmac_get_platform_resources(struct platform_device *pdev, dev_info(&pdev->dev, "IRQ eth_lpi not found\n"); } + stmmac_res->sfty_ce_irq = platform_get_irq_byname_optional(pdev, "sfty_ce"); + if (stmmac_res->sfty_ce_irq < 0) { + if (stmmac_res->sfty_ce_irq == -EPROBE_DEFER) + return -EPROBE_DEFER; + } + + stmmac_res->sfty_ue_irq = platform_get_irq_byname_optional(pdev, "sfty_ue"); + if (stmmac_res->sfty_ue_irq < 0) { + if (stmmac_res->sfty_ue_irq == -EPROBE_DEFER) + return -EPROBE_DEFER; + } + stmmac_res->addr = devm_platform_ioremap_resource(pdev, 0); return PTR_ERR_OR_ZERO(stmmac_res->addr); From patchwork Wed Aug 16 15:29:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 135904 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b82d:0:b0:3f2:4152:657d with SMTP id z13csp768753vqi; Thu, 17 Aug 2023 08:07:16 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF3IZMmwakxmbEZuFLLDT1rIgDz4XYQChkG4ne9nJSymIdTd7ozjas1OqlkYcB7gLAGXHeJ X-Received: by 2002:a17:907:a0c7:b0:99b:48a9:f56d with SMTP id hw7-20020a170907a0c700b0099b48a9f56dmr3489586ejc.22.1692284836058; Thu, 17 Aug 2023 08:07:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1692284836; cv=none; d=google.com; s=arc-20160816; b=afyMKdDzIDbcwYGrRNDNhNrJc4mzF2ufMQ7456OTqrtu0MHnQ1k60O54An5QJxQ2aJ RwLpX0fMWvqO324m6ILgVvtJOzLN2YApwU/QjfhdsQLHmBfFkOkWGVYB0D8aLVGJoqG/ Jd5FWSo8VJ0QQTAvLPbWA/OgQUJdfaOMOGGVkUGNjECTRs5Rrm5/HAHKjIZpoEcfk3x5 3kcSie2AcTP5xJq5nVARnSMqoPTajEsC3KBD5RdwzabyhaMEBf9UrbERjNxW+yLETZRz 0s1OzC8Am1aY0TnnaLu8znMkj5s3FtYP0YQSo8XESa7da6b2j9ekDt4FD9sPXEPQbsK5 b5IA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=z9I8P2lL9glDsgBo/esTMFxI7JHaN1nZ1DSlOBOJ960=; fh=UEVvRAFK6gmZxZNnJDUC7AmNk/iU78fiWA23OmiDi44=; b=pVkEP7pFLFzaWfYODgcHIVitHydp2xnASq0/R75Y+i9mWnqAq0HZ4Adot0Ylxnv8Me tTpn3Kxp6WPfC7AkKs/Q4H+B9kHcDxfCZjIBhmNPXF7UgZDf2lZMmZKONfyuENXDPcuK HyB1KVOllHnSYpXhOoLCx9PACgxMYan3W32HhfuspPYNW93v1ryv6p0RqgSXh9EVn/wC LwDcQez79PvbleFHgdmPU4ijiMwEFqyOa6wHtHIsm8/CauztqL3RQntu1isyTYLFEREO zD67A0QU58+9R0tcom6R7bDDXx4l6pcII9pMgE4gQFWKHlPwSSsjDHneS7CoZjywa0jW lwSg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=KEEdMxD0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s10-20020a1709064d8a00b0099cc30cc3d6si12501081eju.228.2023.08.17.08.06.37; Thu, 17 Aug 2023 08:07:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=KEEdMxD0; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344295AbjHPPmQ (ORCPT + 99 others); Wed, 16 Aug 2023 11:42:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344239AbjHPPls (ORCPT ); Wed, 16 Aug 2023 11:41:48 -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 0475F26A6; Wed, 16 Aug 2023 08:41:48 -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 75FC564D2A; Wed, 16 Aug 2023 15:41:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5E34BC433C8; Wed, 16 Aug 2023 15:41:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692200506; bh=d0jes+KrJeiWl6LJI3nrjoLh3/r6+H9lE5veVs3+NN8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KEEdMxD0b9PLscPEqG8w/hUc7DEM9kbhfjd2v65dvGQMUN+FT6pldecS8L+DOR+4Z ZzV1WITkzhou/COccdDVKQaO6FsfchN4yjW8OyK7ExzfS/gezDhNDxYDEBJMn1q7Ae ksbxbvQUeu6h4UQSKIsYvRodgiXk/7OOBynz7rquDOboqsadS8+74KJsqnvPDBWuUx ezNr+/AuEIl7IpxWAsMAWK/pgBb01lTBdpFCV4XibHAB2i9ybfqGEh/xKs62e5VKCd dD8F/40VkeZ3xdz5OiYImXFWgQyIBwLKMEULzp03OXhsRAQcT8HuaOfqf8TkOhYYpO 13RDrc08fcksA== 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 v4 8/9] dt-bindings: net: snps,dwmac: add per channel irq support Date: Wed, 16 Aug 2023 23:29:25 +0800 Message-Id: <20230816152926.4093-9-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230816152926.4093-1-jszhang@kernel.org> References: <20230816152926.4093-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1774489264449715639 X-GMAIL-MSGID: 1774489264449715639 The IP supports optional per channel interrupt, add support for this usage case. Signed-off-by: Jisheng Zhang --- .../devicetree/bindings/net/snps,dwmac.yaml | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml index b8d01bba6e1a..a916701474dc 100644 --- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml +++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml @@ -103,15 +103,51 @@ properties: interrupts: minItems: 1 + maxItems: 37 + additionalItems: true items: - description: Combined signal for various interrupt events - description: The interrupt to manage the remote wake-up packet detection - description: The interrupt that occurs when Rx exits the LPI state - description: The interrupt that occurs when Safety Feature Correctible Errors happen - description: The interrupt that occurs when Safety Feature Uncorrectible Errors happen + - description: rx0 per-channel interrupt + - description: rx1 per-channel interrupt + - description: rx2 per-channel interrupt + - description: rx3 per-channel interrupt + - description: rx4 per-channel interrupt + - description: rx5 per-channel interrupt + - description: rx6 per-channel interrupt + - description: rx7 per-channel interrupt + - description: rx8 per-channel interrupt + - description: rx9 per-channel interrupt + - description: rx10 per-channel interrupt + - description: rx11 per-channel interrupt + - description: rx12 per-channel interrupt + - description: rx13 per-channel interrupt + - description: rx14 per-channel interrupt + - description: rx15 per-channel interrupt + - description: tx0 per-channel interrupt + - description: tx1 per-channel interrupt + - description: tx2 per-channel interrupt + - description: tx3 per-channel interrupt + - description: tx4 per-channel interrupt + - description: tx5 per-channel interrupt + - description: tx6 per-channel interrupt + - description: tx7 per-channel interrupt + - description: tx8 per-channel interrupt + - description: tx9 per-channel interrupt + - description: tx10 per-channel interrupt + - description: tx11 per-channel interrupt + - description: tx12 per-channel interrupt + - description: tx13 per-channel interrupt + - description: tx14 per-channel interrupt + - description: tx15 per-channel interrupt interrupt-names: minItems: 1 + maxItems: 37 + additionalItems: true items: - const: macirq - enum: @@ -119,6 +155,38 @@ properties: - eth_lpi - sfty_ce - sfty_ue + - rx0 + - rx1 + - rx2 + - rx3 + - rx4 + - rx5 + - rx6 + - rx7 + - rx8 + - rx9 + - rx10 + - rx11 + - rx12 + - rx13 + - rx14 + - rx15 + - tx0 + - tx1 + - tx2 + - tx3 + - tx4 + - tx5 + - tx6 + - tx7 + - tx8 + - tx9 + - tx10 + - tx11 + - tx12 + - tx13 + - tx14 + - tx15 clocks: minItems: 1 From patchwork Wed Aug 16 15:29:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jisheng Zhang X-Patchwork-Id: 135964 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b82d:0:b0:3f2:4152:657d with SMTP id z13csp1054207vqi; Thu, 17 Aug 2023 17:00:19 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGO4JbePB7k/V3Y0vG9l/Ea2y11mdQVHUTLJNfiKPypiXZCrXEJU1DAwAGIEe/KTpS3Vh45 X-Received: by 2002:a17:90b:3649:b0:26d:17e0:2f3d with SMTP id nh9-20020a17090b364900b0026d17e02f3dmr935122pjb.44.1692316818895; Thu, 17 Aug 2023 17:00:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1692316818; cv=none; d=google.com; s=arc-20160816; b=HglCd5VOLd2IhdHNSdLUzNDQ31+s0KfE2fQh7za6rjVuzFSHyIdBFsTk/UOcmkw3Hn 3DnW+84X3Qyyl5PCCqiShSB5beve7u/x0HDq2AaHOLP6DkI6+4KdFfuiuu4wcJXSNQCY uN3Z7FpBI/QTdgcnne7omI2o3sTaNqrjGu7sMadZK1hCh1aI37jI2Ii25aVcAU2eSXLI 4mOBeuRjGBL68+qq0b/nW5yvK/btdhhDiXimQKxE+x0VVnHlcdiAtQ7AOl7W6H7TdNhC 5zGP4dPRx950qlmhgIkXBIfu7rvBx6CUcqTz5Gm+w5in2UYBlSlti0xLT4sPKhdhxaU4 3lqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=rksCAGfwMHkvpuTR//aiWq8reu5vdjOMCWMKsoRuDdQ=; fh=UEVvRAFK6gmZxZNnJDUC7AmNk/iU78fiWA23OmiDi44=; b=VzcLhl1niPbjCFlokmm2ntE48Hf3+Nq/tp/89Dwhfkt24rddxPcCF25kiOYRlhpYxI Nh6vwSVX+56vXTaq6p43qzI3U1rBaIG4b+S0kJhKjIRB3E37MzCZuo5C/PXGkxiHREaO G05kaN88EUC/vjFfNEw7yz23DsPgmecGvpZEYhpnjjCT4MeHJk3x6aoN2WJz/ANiTCax 6rjFuFCH8FRrtxayWgh3FBqW8z+VIdbHXsfFBoc2NWQYKV94B1yGWqtL3Pfai9IwrMPJ 0JAOsdC6NEjLSBZDsDLPRpzUVGwmq0Qg6dODcwI9xhg4438p73Q78nVBUXRRFItFQO37 9u1Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=NDBHKHzT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id fv19-20020a17090b0e9300b00267bb4cfaa7si2256685pjb.88.2023.08.17.17.00.05; Thu, 17 Aug 2023 17:00:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=NDBHKHzT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344299AbjHPPmS (ORCPT + 99 others); Wed, 16 Aug 2023 11:42:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44318 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344278AbjHPPlw (ORCPT ); Wed, 16 Aug 2023 11:41:52 -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 D696B26A6; Wed, 16 Aug 2023 08:41:51 -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 6AFA065150; Wed, 16 Aug 2023 15:41:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5050FC433CC; Wed, 16 Aug 2023 15:41:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692200510; bh=IR6gUNrGlpvXPqUl6ePu23Yb6z5yLdZcfdC0Vl1Tk5c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NDBHKHzTzqYtf84tuKMNpO7JrsBxgJrYjlAJD7mOc/vcFT4TR5PZYH166vxaDX7w/ myNG8+jyyjHhCuqo5YSIE1Z0qBk3QhHLRaP9OPM/VX0XKhRtLwzesQGf4Nm2dbZrCH EhxstAPdlpX+6sFHg0xvQ9dXjXAkUvmhyk8Cv9rTdeLAwnGmqsnNFXRf2/lhTyK3Pk lfoeka0qnkHDb8sDyiPc44BcNxycCi01HfGe8vJyYw7y+GEZzLhnyyGml6HOFuo3gm eELsWcnl+5cVAuvySfHx/1EPNtiSJSWUi6BAZTjJ4p0/vAPD88TGDm+C+F594DkI2L AjYhvf8ec/31w== 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 v4 9/9] net: stmmac: platform: support parsing per channel irq from DT Date: Wed, 16 Aug 2023 23:29:26 +0800 Message-Id: <20230816152926.4093-10-jszhang@kernel.org> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230816152926.4093-1-jszhang@kernel.org> References: <20230816152926.4093-1-jszhang@kernel.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1774522800560868585 X-GMAIL-MSGID: 1774522800560868585 The snps dwmac IP may support per channel interrupt. Add support to parse the per channel irq from DT. Signed-off-by: Jisheng Zhang --- .../net/ethernet/stmicro/stmmac/stmmac_main.c | 10 ++++---- .../ethernet/stmicro/stmmac/stmmac_platform.c | 23 +++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 64c55024d69d..d4a8d7b48ad2 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -3619,7 +3619,7 @@ static int stmmac_request_irq_multi_channel(struct net_device *dev) for (i = 0; i < priv->plat->rx_queues_to_use; i++) { if (i >= MTL_MAX_RX_QUEUES) break; - if (priv->rx_irq[i] == 0) + if (priv->rx_irq[i] <= 0) continue; int_name = priv->int_name_rx_irq[i]; @@ -3644,7 +3644,7 @@ static int stmmac_request_irq_multi_channel(struct net_device *dev) for (i = 0; i < priv->plat->tx_queues_to_use; i++) { if (i >= MTL_MAX_TX_QUEUES) break; - if (priv->tx_irq[i] == 0) + if (priv->tx_irq[i] <= 0) continue; int_name = priv->int_name_tx_irq[i]; @@ -7300,8 +7300,10 @@ int stmmac_dvr_probe(struct device *device, priv->plat = plat_dat; priv->ioaddr = res->addr; priv->dev->base_addr = (unsigned long)res->addr; - priv->plat->dma_cfg->perch_irq_en = - (priv->plat->flags & STMMAC_FLAG_PERCH_IRQ_EN); + if (res->rx_irq[0] > 0 && res->tx_irq[0] > 0) { + priv->plat->flags |= STMMAC_FLAG_PERCH_IRQ_EN; + priv->plat->dma_cfg->perch_irq_en = true; + } priv->dev->irq = res->irq; priv->wol_irq = res->wol_irq; diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c index 4a2002eea870..0fb9868aeffc 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c @@ -704,6 +704,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)); /* Get IRQ information early to have an ability to ask for deferred @@ -737,6 +740,26 @@ int stmmac_get_platform_resources(struct platform_device *pdev, dev_info(&pdev->dev, "IRQ eth_lpi not found\n"); } + for (i = 0; i < MTL_MAX_RX_QUEUES; i++) { + snprintf(irq_name, sizeof(irq_name), "rx%i", i); + stmmac_res->rx_irq[i] = platform_get_irq_byname_optional(pdev, irq_name); + if (stmmac_res->rx_irq[i] < 0) { + if (stmmac_res->rx_irq[i] == -EPROBE_DEFER) + return -EPROBE_DEFER; + break; + } + } + + for (i = 0; i < MTL_MAX_TX_QUEUES; i++) { + snprintf(irq_name, sizeof(irq_name), "tx%i", i); + stmmac_res->tx_irq[i] = platform_get_irq_byname_optional(pdev, irq_name); + if (stmmac_res->tx_irq[i] < 0) { + if (stmmac_res->tx_irq[i] == -EPROBE_DEFER) + return -EPROBE_DEFER; + break; + } + } + stmmac_res->sfty_ce_irq = platform_get_irq_byname_optional(pdev, "sfty_ce"); if (stmmac_res->sfty_ce_irq < 0) { if (stmmac_res->sfty_ce_irq == -EPROBE_DEFER)