mirror of https://github.com/torvalds/linux.git
net: dsa: tag_gswip: use the dsa_xmit_port_mask() helper
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>
This commit is contained in:
parent
621d06a40e
commit
e094428fb4
|
|
@ -48,8 +48,7 @@
|
||||||
|
|
||||||
/* Byte 3 */
|
/* Byte 3 */
|
||||||
#define GSWIP_TX_DPID_EN BIT(0)
|
#define GSWIP_TX_DPID_EN BIT(0)
|
||||||
#define GSWIP_TX_PORT_MAP_SHIFT 1
|
#define GSWIP_TX_PORT_MAP GENMASK(6, 1)
|
||||||
#define GSWIP_TX_PORT_MAP_MASK GENMASK(6, 1)
|
|
||||||
|
|
||||||
#define GSWIP_RX_HEADER_LEN 8
|
#define GSWIP_RX_HEADER_LEN 8
|
||||||
|
|
||||||
|
|
@ -61,7 +60,6 @@
|
||||||
static struct sk_buff *gswip_tag_xmit(struct sk_buff *skb,
|
static struct sk_buff *gswip_tag_xmit(struct sk_buff *skb,
|
||||||
struct net_device *dev)
|
struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct dsa_port *dp = dsa_user_to_port(dev);
|
|
||||||
u8 *gswip_tag;
|
u8 *gswip_tag;
|
||||||
|
|
||||||
skb_push(skb, GSWIP_TX_HEADER_LEN);
|
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[0] = GSWIP_TX_SLPID_CPU;
|
||||||
gswip_tag[1] = GSWIP_TX_DPID_ELAN;
|
gswip_tag[1] = GSWIP_TX_DPID_ELAN;
|
||||||
gswip_tag[2] = GSWIP_TX_PORT_MAP_EN | GSWIP_TX_PORT_MAP_SEL;
|
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;
|
gswip_tag[3] |= GSWIP_TX_DPID_EN;
|
||||||
|
|
||||||
return skb;
|
return skb;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue