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 5CE35CA601E for ; Fri, 9 Oct 2026 16:11:33 +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=rbIAcFETs7Fo7Fiw9hweWROaB2K6gpG5L37UCuTLIIU=; b=GAhsVZER2U7EfCmgdJr8OZvgmW EkUwOIULYU68ZkDgTC+ccxaRvZTsIRFiUstjLTgX3ZwEDVBM2EazjfnkcTPH/fjp/zC8XavE4PHwr IJTH3Ll8ue/dUvgij+3DMe/nmdwObNwNSLPC/SSsRYxuiffIeMA4nINsp2Yyl4Uj6Jc2z+sxnUk2N Ld2H78VqyvT4U6GBxxb4zkK0xbE2UZDp+3UMt8t5+gaOZvqa62XuaWx4Jp89JwX0oGJXy3tNLljYd 1+szONfNTo0j7rYGi+YzsLvESxKGEuKdiqjad9vCqpdnxqPgaKoe+BWOAzGJikaUNzJfcLzWejDbu lsSsyciQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xFDC0-00000006cbl-0asy; Fri, 09 Oct 2026 16:11:32 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xFDBv-00000006cUx-384h for linux-mediatek@bombadil.infradead.org; Fri, 09 Oct 2026 16:11:27 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:MIME-Version :References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=rbIAcFETs7Fo7Fiw9hweWROaB2K6gpG5L37UCuTLIIU=; b=JwnTSAFnDHicbXsH6vhjgPLPuP WtFl+ihCEnMjTFgmxwdFkykvHbHgcI6o2Zi+7OCVuWJGbFQ9QK4c7qeKeQ3g7tquR15Y1ATJfylTL ZJHEJ+Iq8XbUnckb5qI6zFIm+ckEYTGwDCLe25qHzJGMOtRdtazgGPUFDTr9RzW7ezHr2HM8btCdS n5RsVvJWbCAj965QezeIfBBiQnPy3j64NONXsFYp2gYYcNqi5zM5q9gmWDQHsgg3XzUij2sPZb0y2 xF6D0VxnqMfGncBOH4x3/4lrC02LF04pXhFvSEPZ5RuSkIaPGJEWirXWS7b2rZirE/nMRwwBpmo6i pXkipKPQ==; Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by desiato.infradead.org with esmtps (Exim 4.99.2 #2 (Red Hat Linux)) id 1xFDBs-0000000BOmi-3jtC for linux-mediatek@lists.infradead.org; Fri, 09 Oct 2026 16:11:26 +0000 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-486e70f2457so3025908f8f.2 for ; Fri, 09 Oct 2026 09:11:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1791562283; x=1792167083; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=rbIAcFETs7Fo7Fiw9hweWROaB2K6gpG5L37UCuTLIIU=; b=r6d7VCrB5df5ocPLedqvr+pAHIWiflXxK/9DEVzfKSeyLRd2ImPLGz6Xz2mzRVV8oU TRAj5lSJlZykmsqWFODf1+puFj/ujHKmD3FuRFVm/tjqdipN9lN5D9WXgfheBManBPSB 6UYhdCkGZJCPOrgnD4zbnJm1KwC5Ku79YYrph9X8hO2sLtTjeigHjgwyPg7TQ5wpH6ws 3DgmTDTKkwH9q2XTxs4EUC81ry9Lqq8VOgybcrMnV3tK9h5KGfFiXHEeXsg6gIPJvY4r P81g89K3O3ZLS4TXOlPlpZ105IdF7GI9m1EPygADvuDXGI8Kz3a4tIvwkUMaWxTryuIO 4EeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791562283; x=1792167083; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=rbIAcFETs7Fo7Fiw9hweWROaB2K6gpG5L37UCuTLIIU=; b=kZyfUFngbGubA2H9VFOEwZVpgN3aUfvBn7hNcYBYwAdqxcjM6ckudcMyl4RFS/nImx cagOXw6iv/sqFLBKaJlxAOuzGFHnTb8VhC2WA2wG9ltRv0MkolVnirtS8+ym1iOAKrDd eevflq4gWeZL1yi3Ttug6+zC6Sn/ecC+Pb7H1Jemqyb6oKqgPnzxhXMVfmzLf6LgjM5k GfshIBiYqlwZ66ZmyNbbiIid3NYiYgM0+0biJCXScdVpCzDHo0oRyyqhH/1UhZPL0rwT gwPk1r102Nj5/udemfQw0T8wi3UqnyGnYbe/jIXfbr4w/iyzQpdFBlGUJfAHuLICtqzd UjQw== X-Forwarded-Encrypted: i=1; AKwUvBzrq0rU3p96UtMojYg4Yqx6HwXOya9M+NjIr5WivBLxEpfeBQBB+snBF/5LD0K5eU/Zf/CiALYWorwb4qNwlg==@lists.infradead.org X-Gm-Message-State: AFuF++l9lx7qIOdTuu6w0+8SoX93crAyqbMXKFjK0QWF/jCU+cZmUb8Q kTxIGin5ZzOBRa7bUlGrEqJwB8itmdUJlCZ9Sd2WQprvssNzrJR2wJeZ X-Gm-Gg: AYBFou31djedjACXrzvqdpqiasIdfCVyP5XxxnyI6mibXOpMs+YtiKHlaQ8T/cMhJ0I horBrWhXXyOPWWxbK2Rg1hj0vPQeBGE3UmYI46/oxYLsYOE3sLRRnQvqyS3hyr2dxZqwKI1IhN9 o1nbd7/ywbUO+gKo06nBjmOdQvc2mdCH2iWC/KIeBwDWg1lRbXh8jbCXPJ7q0oBitK586zftrzX YppB4eZ0aPWtBzaDBp0VLJt/WXd21NFq56OHQ6zVgFgC1E8SWvw90sWhrm+vfmGh4benD6seJPv 8On8/hBeNq454RVDNUZKOlh0/4UXf1fX9JYaQkFcbnV/eBKoVZHxt7BYGKRE24YR//3dw/sNCfU 4DKDUqvz7QXGnOHgSSQrjXx0cOuwTrMkSDvdgcJKbEXgowLjOEOz06f5uulIEXHe/mIONJzb0FE 7cdjB0YL41AqW5k7PKGJy78v8vDRm18pKemGsSFrcNbViHW+NM7LAn8ouKbjLY9vFsGe8udbPkM ZUmtiPCLfEdMyD7IpYVDpcsJQsY1UwO/3eLosVr1T86iF3AGXC73O1f5th216mFNdoUyDUNjR0w A0I68xZKwMAB5rcakQ== X-Received: by 2002:a05:600c:3e8d:b0:4a1:825a:56fd with SMTP id 5b1f17b1804b1-4a18e4aecb2mr43266655e9.32.1791562283128; Fri, 09 Oct 2026 09:11:23 -0700 (PDT) Received: from Ansuel-XPS24.localdomain (host-213-45-9-252.retail.telecomitalia.it. [213.45.9.252]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-48db94e2f08sm4744701f8f.15.2026.10.09.09.11.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Oct 2026 09:11:22 -0700 (PDT) From: Christian Marangi To: Christian Marangi , Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Vladimir Oltean , Matthias Brugger , AngeloGioacchino Del Regno , "Chester A. Unal" , Daniel Golle , Heiner Kallweit , Russell King , Simon Horman , Joris Vaisvila , linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, netdev@vger.kernel.org, mfd@lists.linux.dev, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Andrew Lunn Subject: [PATCH net-next v25 06/10] net: dsa: tag_mtk: add Airoha variant usage of this TAG Date: Fri, 9 Oct 2026 18:10:51 +0200 Message-ID: <20261009161102.38961-7-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20261009161102.38961-1-ansuelsmth@gmail.com> References: <20261009161102.38961-1-ansuelsmth@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20261009_171124_968895_7E3E1A51 X-CRM114-Status: GOOD ( 19.52 ) 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: , Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Add variant of the MTK TAG for Airoha Switch and comments about difference between Airoha AN8855 and Mediatek tag bitmap. Airoha AN8855 doesn't support controlling SA learning and Leaky VLAN from tag. Although these bits are not used (and even not defined for Leaky VLAN), it's worth to add comments for these difference to prevent any kind of regression in the future if ever these bits will be used. Rework the makefile, config and tag driver to better report to external tool (like libpcap) the usage of this variant with a dedicated "Airoha" name. Signed-off-by: Christian Marangi Reviewed-by: Andrew Lunn --- include/net/dsa.h | 2 ++ net/dsa/Kconfig | 11 +++++++++++ net/dsa/Makefile | 2 +- net/dsa/tag_mtk.c | 36 +++++++++++++++++++++++++++++++++--- 4 files changed, 47 insertions(+), 4 deletions(-) diff --git a/include/net/dsa.h b/include/net/dsa.h index 5d12191b6f6f..9824c63ad50b 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h @@ -62,6 +62,7 @@ struct tc_action; #define DSA_TAG_PROTO_KSZ8463_VALUE 34 #define DSA_TAG_PROTO_MT7628_VALUE 35 #define DSA_TAG_PROTO_KS8995_VALUE 36 +#define DSA_TAG_PROTO_AIROHA_VALUE 37 enum dsa_tag_protocol { DSA_TAG_PROTO_NONE = DSA_TAG_PROTO_NONE_VALUE, @@ -76,6 +77,7 @@ enum dsa_tag_protocol { DSA_TAG_PROTO_KSZ9893 = DSA_TAG_PROTO_KSZ9893_VALUE, DSA_TAG_PROTO_LAN9303 = DSA_TAG_PROTO_LAN9303_VALUE, DSA_TAG_PROTO_MTK = DSA_TAG_PROTO_MTK_VALUE, + DSA_TAG_PROTO_AIROHA = DSA_TAG_PROTO_AIROHA_VALUE, DSA_TAG_PROTO_QCA = DSA_TAG_PROTO_QCA_VALUE, DSA_TAG_PROTO_TRAILER = DSA_TAG_PROTO_TRAILER_VALUE, DSA_TAG_PROTO_8021Q = DSA_TAG_PROTO_8021Q_VALUE, diff --git a/net/dsa/Kconfig b/net/dsa/Kconfig index 4f44bf3ede23..28a249f04a43 100644 --- a/net/dsa/Kconfig +++ b/net/dsa/Kconfig @@ -24,6 +24,13 @@ config NET_DSA_TAG_NONE Say Y or M if you want to enable support for switches which don't tag frames over the CPU port. +config NET_DSA_TAG_AIROHA + tristate "Tag driver for Airoha switches" + select NET_DSA_TAG_MTK_COMMON + help + Say Y or M if you want to enable support for tagging frames for + Airoha switches. + config NET_DSA_TAG_AR9331 tristate "Tag driver for Atheros AR9331 SoC with built-in switch" help @@ -104,8 +111,12 @@ config NET_DSA_TAG_MT7628 Say Y or M if you want to enable support for tagging frames for the switch embedded in the MT7628 SoC. +config NET_DSA_TAG_MTK_COMMON + tristate + config NET_DSA_TAG_MTK tristate "Tag driver for Mediatek switches" + select NET_DSA_TAG_MTK_COMMON help Say Y or M if you want to enable support for tagging frames for Mediatek switches. diff --git a/net/dsa/Makefile b/net/dsa/Makefile index 1f9cc30e9988..7ccaa528a989 100644 --- a/net/dsa/Makefile +++ b/net/dsa/Makefile @@ -29,7 +29,7 @@ obj-$(CONFIG_NET_DSA_TAG_KS8995) += tag_ks8995.o obj-$(CONFIG_NET_DSA_TAG_KSZ) += tag_ksz.o obj-$(CONFIG_NET_DSA_TAG_LAN9303) += tag_lan9303.o obj-$(CONFIG_NET_DSA_TAG_MT7628) += tag_mt7628.o -obj-$(CONFIG_NET_DSA_TAG_MTK) += tag_mtk.o +obj-$(CONFIG_NET_DSA_TAG_MTK_COMMON) += tag_mtk.o obj-$(CONFIG_NET_DSA_TAG_MXL_862XX) += tag_mxl862xx.o obj-$(CONFIG_NET_DSA_TAG_MXL_GSW1XX) += tag_mxl-gsw1xx.o obj-$(CONFIG_NET_DSA_TAG_NETC) += tag_netc.o diff --git a/net/dsa/tag_mtk.c b/net/dsa/tag_mtk.c index c7dc7731675e..f8087d768da6 100644 --- a/net/dsa/tag_mtk.c +++ b/net/dsa/tag_mtk.c @@ -11,6 +11,7 @@ #include "tag.h" #define MTK_NAME "mtk" +#define AIROHA_NAME "airoha" #define MTK_HDR_LEN 4 #define MTK_HDR_XMIT_UNTAGGED 0 @@ -18,6 +19,9 @@ #define MTK_HDR_XMIT_TAGGED_TPID_88A8 2 #define MTK_HDR_RECV_SOURCE_PORT_MASK GENMASK(2, 0) #define MTK_HDR_XMIT_DP_BIT_MASK GENMASK(5, 0) +/* AN8855 doesn't support SA_DIS and Leaky VLAN + * control in tag as these bits doesn't exist. + */ #define MTK_HDR_XMIT_SA_DIS BIT(6) static struct sk_buff *mtk_tag_xmit(struct sk_buff *skb, @@ -99,6 +103,7 @@ static struct sk_buff *mtk_tag_rcv(struct sk_buff *skb, struct net_device *dev) return skb; } +#if IS_ENABLED(CONFIG_NET_DSA_TAG_MTK) static const struct dsa_device_ops mtk_netdev_ops = { .name = MTK_NAME, .proto = DSA_TAG_PROTO_MTK, @@ -107,8 +112,33 @@ static const struct dsa_device_ops mtk_netdev_ops = { .needed_headroom = MTK_HDR_LEN, }; -MODULE_DESCRIPTION("DSA tag driver for Mediatek switches"); -MODULE_LICENSE("GPL"); +DSA_TAG_DRIVER(mtk_netdev_ops); MODULE_ALIAS_DSA_TAG_DRIVER(DSA_TAG_PROTO_MTK, MTK_NAME); +#endif -module_dsa_tag_driver(mtk_netdev_ops); +#if IS_ENABLED(CONFIG_NET_DSA_TAG_AIROHA) +static const struct dsa_device_ops airoha_netdev_ops = { + .name = AIROHA_NAME, + .proto = DSA_TAG_PROTO_AIROHA, + .xmit = mtk_tag_xmit, + .rcv = mtk_tag_rcv, + .needed_headroom = MTK_HDR_LEN, +}; + +DSA_TAG_DRIVER(airoha_netdev_ops); +MODULE_ALIAS_DSA_TAG_DRIVER(DSA_TAG_PROTO_AIROHA, AIROHA_NAME); +#endif + +static struct dsa_tag_driver *dsa_tag_driver_array[] = { +#if IS_ENABLED(CONFIG_NET_DSA_TAG_MTK) + &DSA_TAG_DRIVER_NAME(mtk_netdev_ops), +#endif +#if IS_ENABLED(CONFIG_NET_DSA_TAG_AIROHA) + &DSA_TAG_DRIVER_NAME(airoha_netdev_ops), +#endif +}; + +module_dsa_tag_drivers(dsa_tag_driver_array); + +MODULE_DESCRIPTION("DSA tag driver for Mediatek switches"); +MODULE_LICENSE("GPL"); -- 2.55.0