diff options
| author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2025-11-27 14:09:02 +0200 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2025-11-28 20:03:41 -0800 |
| commit | 64b0d2edb61aba9009a1c957568ad674059841a0 (patch) | |
| tree | a68f0649ee470b8b5912172c76e8ec08c6d90aa4 /net | |
| parent | 24099389a63fb9a3cf79d04f38c7892a9957858b (diff) | |
net: dsa: tag_yt921x: use the dsa_xmit_port_mask() helper
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>
Diffstat (limited to 'net')
| -rw-r--r-- | net/dsa/tag_yt921x.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/net/dsa/tag_yt921x.c b/net/dsa/tag_yt921x.c index 995da44f0a2a..6bbfd42dc5df 100644 --- a/net/dsa/tag_yt921x.c +++ b/net/dsa/tag_yt921x.c @@ -38,14 +38,11 @@ #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; |