From mboxrd@z Thu Jan 1 00:00:00 1970 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id F0FFCC71135 for ; Mon, 16 Jun 2025 08:46:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=O65L2t9W8ZXWygRCA4KnSeEpTHiZlvT4O3mUer1lJck=; b=KIj4z8oKyii0tB52X5NFtnbQE+ P9r8GKi6btS34wwvSBT60PZbBvld/9fVuWc0n4UmEPz1zbmT3NL5CYqlxhTM4LEpyIdvMSnso7/6Z bZaQAuap5mK5xRTR+K+fr5k76QZsTwF5z48RtS43stCljcMLsDH6zXgY0r+chlzDz8kxPqMprv25U ztgaMJ1apeVzDpZZy2jsaW/Z5vTeQ8bjfUGTmiE2OoI/BVuCj/rgfqYDNRXdnZ/GopwUB13fMX1v2 VgMeA7TacVctpwWveOwJWPIPTys5vqlyphAsgE+y4xwJ3h5pmV4vIN2WMUmpdDihlv8ZiPn73yk++ aPzTAtiw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uR5Th-00000003pe6-2ubF; Mon, 16 Jun 2025 08:46:05 +0000 Received: from mxout1.routing.net ([2a03:2900:1:a::a]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uR4se-00000003kDY-0gM8; Mon, 16 Jun 2025 08:07:49 +0000 Received: from mxbulk.masterlogin.de (unknown [192.168.10.85]) by mxout1.routing.net (Postfix) with ESMTP id 737353FDD4; Mon, 16 Jun 2025 08:07:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailerdienst.de; s=20200217; t=1750061266; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=O65L2t9W8ZXWygRCA4KnSeEpTHiZlvT4O3mUer1lJck=; b=iRrvfIMXUMPEHmbttE1A3Q194fTpN00corjw0Y4kfRKOuOm+YbRSKyCK9SQgb+ShY+dusM txJ00iOENvqSrJGwASwgSJrUjX4bwYQ8BVwqw43oh3XY7DBZew/pNvjyFuFgip2RposViz geXtErzbL1IUpnn6FnYDvgkwSjjiVK8= Received: from frank-u24.. (fttx-pool-194.15.87.210.bambit.de [194.15.87.210]) by mxbulk.masterlogin.de (Postfix) with ESMTPSA id 39BB8122704; Mon, 16 Jun 2025 08:07:46 +0000 (UTC) From: Frank Wunderlich To: Felix Fietkau , Sean Wang , Lorenzo Bianconi , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno Cc: Frank Wunderlich , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Simon Horman , Daniel Golle , arinc.unal@arinc9.com Subject: [net-next v4 1/3] net: ethernet: mtk_eth_soc: support named IRQs Date: Mon, 16 Jun 2025 10:07:34 +0200 Message-ID: <20250616080738.117993-2-linux@fw-web.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250616080738.117993-1-linux@fw-web.de> References: <20250616080738.117993-1-linux@fw-web.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250616_010748_372836_7116FE96 X-CRM114-Status: GOOD ( 17.19 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Frank Wunderlich Add named interrupts and keep index based fallback for exiting devicetrees. Currently only rx and tx IRQs are defined to be used with mt7988, but later extended with RSS/LRO support. Signed-off-by: Frank Wunderlich Reviewed-by: Simon Horman --- v2: - move irqs loading part into own helper function - reduce indentation - place mtk_get_irqs helper before the irq_handler (note for simon) --- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 39 +++++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c index b76d35069887..81ae8a6fe838 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -3337,6 +3337,30 @@ static void mtk_tx_timeout(struct net_device *dev, unsigned int txqueue) schedule_work(ð->pending_work); } +static int mtk_get_irqs(struct platform_device *pdev, struct mtk_eth *eth) +{ + int i; + + eth->irq[1] = platform_get_irq_byname(pdev, "tx"); + eth->irq[2] = platform_get_irq_byname(pdev, "rx"); + if (eth->irq[1] >= 0 && eth->irq[2] >= 0) + return 0; + + for (i = 0; i < 3; i++) { + if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT) && i > 0) + eth->irq[i] = eth->irq[0]; + else + eth->irq[i] = platform_get_irq(pdev, i); + + if (eth->irq[i] < 0) { + dev_err(&pdev->dev, "no IRQ%d resource found\n", i); + return -ENXIO; + } + } + + return 0; +} + static irqreturn_t mtk_handle_irq_rx(int irq, void *_eth) { struct mtk_eth *eth = _eth; @@ -5106,17 +5130,10 @@ static int mtk_probe(struct platform_device *pdev) } } - for (i = 0; i < 3; i++) { - if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT) && i > 0) - eth->irq[i] = eth->irq[0]; - else - eth->irq[i] = platform_get_irq(pdev, i); - if (eth->irq[i] < 0) { - dev_err(&pdev->dev, "no IRQ%d resource found\n", i); - err = -ENXIO; - goto err_wed_exit; - } - } + err = mtk_get_irqs(pdev, eth); + if (err) + goto err_wed_exit; + for (i = 0; i < ARRAY_SIZE(eth->clks); i++) { eth->clks[i] = devm_clk_get(eth->dev, mtk_clks_source_name[i]); -- 2.43.0 From mboxrd@z Thu Jan 1 00:00:00 1970 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 08854C71135 for ; Mon, 16 Jun 2025 08:48:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date :Subject:To:From:Reply-To:Content-Type:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=O65L2t9W8ZXWygRCA4KnSeEpTHiZlvT4O3mUer1lJck=; b=1JZHZcHa0Psvm7 YJOuQcn8DwIW21MTFyurJLIi8SbGzWXhANa6y3SE5WL+xtPQY4jW05PWiflr/a9NLy6JpkAhoIC/Z TLEZXTkmEOglne4mpZc9yVuCvTqDskgOgI7BZNLd53ZP6IwpE4/98nRCTzU3RKAjUDCs1PcEqQPgH pk2JU6zOA2jZ6QqPffI/XT//LRWh/sFBlZw/Ldl42QexojvTFB80IfS8W0RvI+dacAI/0i17aVXl7 JiKXTaQVbmbMmH57pzHngV5RC7uIWJT2d5YIlrjz9b/PWJFL9pL2dWc9Wkwx8u+zn1FQCdhkOhTW5 pEMDJOi8jcq46W5rJgeQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uR5Vt-00000003q5o-47sB; Mon, 16 Jun 2025 08:48:21 +0000 Received: from mxout1.routing.net ([2a03:2900:1:a::a]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uR4se-00000003kDY-0gM8; Mon, 16 Jun 2025 08:07:49 +0000 Received: from mxbulk.masterlogin.de (unknown [192.168.10.85]) by mxout1.routing.net (Postfix) with ESMTP id 737353FDD4; Mon, 16 Jun 2025 08:07:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailerdienst.de; s=20200217; t=1750061266; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=O65L2t9W8ZXWygRCA4KnSeEpTHiZlvT4O3mUer1lJck=; b=iRrvfIMXUMPEHmbttE1A3Q194fTpN00corjw0Y4kfRKOuOm+YbRSKyCK9SQgb+ShY+dusM txJ00iOENvqSrJGwASwgSJrUjX4bwYQ8BVwqw43oh3XY7DBZew/pNvjyFuFgip2RposViz geXtErzbL1IUpnn6FnYDvgkwSjjiVK8= Received: from frank-u24.. (fttx-pool-194.15.87.210.bambit.de [194.15.87.210]) by mxbulk.masterlogin.de (Postfix) with ESMTPSA id 39BB8122704; Mon, 16 Jun 2025 08:07:46 +0000 (UTC) From: Frank Wunderlich To: Felix Fietkau , Sean Wang , Lorenzo Bianconi , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno Subject: [net-next v4 1/3] net: ethernet: mtk_eth_soc: support named IRQs Date: Mon, 16 Jun 2025 10:07:34 +0200 Message-ID: <20250616080738.117993-2-linux@fw-web.de> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250616080738.117993-1-linux@fw-web.de> References: <20250616080738.117993-1-linux@fw-web.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250616_010748_372836_7116FE96 X-CRM114-Status: GOOD ( 17.19 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: netdev@vger.kernel.org, arinc.unal@arinc9.com, linux-kernel@vger.kernel.org, Daniel Golle , linux-mediatek@lists.infradead.org, Simon Horman , linux-arm-kernel@lists.infradead.org Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org From: Frank Wunderlich Add named interrupts and keep index based fallback for exiting devicetrees. Currently only rx and tx IRQs are defined to be used with mt7988, but later extended with RSS/LRO support. Signed-off-by: Frank Wunderlich Reviewed-by: Simon Horman --- v2: - move irqs loading part into own helper function - reduce indentation - place mtk_get_irqs helper before the irq_handler (note for simon) --- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 39 +++++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c index b76d35069887..81ae8a6fe838 100644 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -3337,6 +3337,30 @@ static void mtk_tx_timeout(struct net_device *dev, unsigned int txqueue) schedule_work(ð->pending_work); } +static int mtk_get_irqs(struct platform_device *pdev, struct mtk_eth *eth) +{ + int i; + + eth->irq[1] = platform_get_irq_byname(pdev, "tx"); + eth->irq[2] = platform_get_irq_byname(pdev, "rx"); + if (eth->irq[1] >= 0 && eth->irq[2] >= 0) + return 0; + + for (i = 0; i < 3; i++) { + if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT) && i > 0) + eth->irq[i] = eth->irq[0]; + else + eth->irq[i] = platform_get_irq(pdev, i); + + if (eth->irq[i] < 0) { + dev_err(&pdev->dev, "no IRQ%d resource found\n", i); + return -ENXIO; + } + } + + return 0; +} + static irqreturn_t mtk_handle_irq_rx(int irq, void *_eth) { struct mtk_eth *eth = _eth; @@ -5106,17 +5130,10 @@ static int mtk_probe(struct platform_device *pdev) } } - for (i = 0; i < 3; i++) { - if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT) && i > 0) - eth->irq[i] = eth->irq[0]; - else - eth->irq[i] = platform_get_irq(pdev, i); - if (eth->irq[i] < 0) { - dev_err(&pdev->dev, "no IRQ%d resource found\n", i); - err = -ENXIO; - goto err_wed_exit; - } - } + err = mtk_get_irqs(pdev, eth); + if (err) + goto err_wed_exit; + for (i = 0; i < ARRAY_SIZE(eth->clks); i++) { eth->clks[i] = devm_clk_get(eth->dev, mtk_clks_source_name[i]); -- 2.43.0