]> Gentwo Git Trees - linux/.git/commitdiff
net: dsa: tag_yt921x: use the dsa_xmit_port_mask() helper
authorVladimir Oltean <vladimir.oltean@nxp.com>
Thu, 27 Nov 2025 12:09:02 +0000 (14:09 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sat, 29 Nov 2025 04:03:41 +0000 (20:03 -0800)
The "yt921x" tagging protocol populates a bit mask for the TX ports,
so we can use dsa_xmit_port_mask() to centralize the decision of how to
set that field.

Cc: David Yang <mmyangfl@gmail.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Link: https://patch.msgid.link/20251127120902.292555-16-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/dsa/tag_yt921x.c

index 995da44f0a2a114a4491311290807dd5c4348421..6bbfd42dc5dfe2356f3084fe39e0fc6039146681 100644 (file)
 #define  YT921X_TAG_RX_CMD_FORWARDED           0x80
 #define  YT921X_TAG_RX_CMD_UNK_UCAST           0xb2
 #define  YT921X_TAG_RX_CMD_UNK_MCAST           0xb4
-#define YT921X_TAG_TX_PORTS_M          GENMASK(10, 0)
-#define YT921X_TAG_TX_PORTn(port)      BIT(port)
+#define YT921X_TAG_TX_PORTS            GENMASK(10, 0)
 
 static struct sk_buff *
 yt921x_tag_xmit(struct sk_buff *skb, struct net_device *netdev)
 {
-       struct dsa_port *dp = dsa_user_to_port(netdev);
-       unsigned int port = dp->index;
        __be16 *tag;
        u16 tx;
 
@@ -58,7 +55,8 @@ yt921x_tag_xmit(struct sk_buff *skb, struct net_device *netdev)
        /* VLAN tag unrelated when TX */
        tag[1] = 0;
        tag[2] = 0;
-       tx = YT921X_TAG_PORT_EN | YT921X_TAG_TX_PORTn(port);
+       tx = FIELD_PREP(YT921X_TAG_TX_PORTS, dsa_xmit_port_mask(skb, netdev)) |
+            YT921X_TAG_PORT_EN;
        tag[3] = htons(tx);
 
        return skb;