]> Gentwo Git Trees - linux/.git/commitdiff
net: dsa: tag_gswip: use the dsa_xmit_port_mask() helper
authorVladimir Oltean <vladimir.oltean@nxp.com>
Thu, 27 Nov 2025 12:08:50 +0000 (14:08 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sat, 29 Nov 2025 04:03:39 +0000 (20:03 -0800)
The "gswip" 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: Hauke Mehrtens <hauke@hauke-m.de>
Cc: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Link: https://patch.msgid.link/20251127120902.292555-4-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/dsa/tag_gswip.c

index 51a1f46a567f84089c13a15869400faccf46eee8..5fa436121087b456d4cebcf1d5d19eef33f3dc91 100644 (file)
@@ -48,8 +48,7 @@
 
 /* Byte 3 */
 #define GSWIP_TX_DPID_EN               BIT(0)
-#define GSWIP_TX_PORT_MAP_SHIFT                1
-#define GSWIP_TX_PORT_MAP_MASK         GENMASK(6, 1)
+#define GSWIP_TX_PORT_MAP              GENMASK(6, 1)
 
 #define GSWIP_RX_HEADER_LEN    8
 
@@ -61,7 +60,6 @@
 static struct sk_buff *gswip_tag_xmit(struct sk_buff *skb,
                                      struct net_device *dev)
 {
-       struct dsa_port *dp = dsa_user_to_port(dev);
        u8 *gswip_tag;
 
        skb_push(skb, GSWIP_TX_HEADER_LEN);
@@ -70,7 +68,7 @@ static struct sk_buff *gswip_tag_xmit(struct sk_buff *skb,
        gswip_tag[0] = GSWIP_TX_SLPID_CPU;
        gswip_tag[1] = GSWIP_TX_DPID_ELAN;
        gswip_tag[2] = GSWIP_TX_PORT_MAP_EN | GSWIP_TX_PORT_MAP_SEL;
-       gswip_tag[3] = BIT(dp->index + GSWIP_TX_PORT_MAP_SHIFT) & GSWIP_TX_PORT_MAP_MASK;
+       gswip_tag[3] = FIELD_PREP(GSWIP_TX_PORT_MAP, dsa_xmit_port_mask(skb, dev));
        gswip_tag[3] |= GSWIP_TX_DPID_EN;
 
        return skb;