mirror of https://github.com/torvalds/linux.git
net: dsa: tag_brcm: use the dsa_xmit_port_mask() helper
The "brcm" and "brcm-prepend" tagging protocols populate 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. The port mask is written u8 by u8, first the high octet and then the low octet. Cc: Florian Fainelli <florian.fainelli@broadcom.com> Cc: Jonas Gorski <jonas.gorski@gmail.com> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Link: https://patch.msgid.link/20251127120902.292555-3-vladimir.oltean@nxp.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
6f2e1c75bc
commit
621d06a40e
|
|
@ -92,6 +92,7 @@ static struct sk_buff *brcm_tag_xmit_ll(struct sk_buff *skb,
|
||||||
{
|
{
|
||||||
struct dsa_port *dp = dsa_user_to_port(dev);
|
struct dsa_port *dp = dsa_user_to_port(dev);
|
||||||
u16 queue = skb_get_queue_mapping(skb);
|
u16 queue = skb_get_queue_mapping(skb);
|
||||||
|
u16 port_mask;
|
||||||
u8 *brcm_tag;
|
u8 *brcm_tag;
|
||||||
|
|
||||||
/* The Ethernet switch we are interfaced with needs packets to be at
|
/* The Ethernet switch we are interfaced with needs packets to be at
|
||||||
|
|
@ -119,10 +120,9 @@ static struct sk_buff *brcm_tag_xmit_ll(struct sk_buff *skb,
|
||||||
brcm_tag[0] = (1 << BRCM_OPCODE_SHIFT) |
|
brcm_tag[0] = (1 << BRCM_OPCODE_SHIFT) |
|
||||||
((queue & BRCM_IG_TC_MASK) << BRCM_IG_TC_SHIFT);
|
((queue & BRCM_IG_TC_MASK) << BRCM_IG_TC_SHIFT);
|
||||||
brcm_tag[1] = 0;
|
brcm_tag[1] = 0;
|
||||||
brcm_tag[2] = 0;
|
port_mask = dsa_xmit_port_mask(skb, dev);
|
||||||
if (dp->index == 8)
|
brcm_tag[2] = (port_mask >> 8) & BRCM_IG_DSTMAP2_MASK;
|
||||||
brcm_tag[2] = BRCM_IG_DSTMAP2_MASK;
|
brcm_tag[3] = port_mask & BRCM_IG_DSTMAP1_MASK;
|
||||||
brcm_tag[3] = (1 << dp->index) & BRCM_IG_DSTMAP1_MASK;
|
|
||||||
|
|
||||||
/* Now tell the conduit network device about the desired output queue
|
/* Now tell the conduit network device about the desired output queue
|
||||||
* as well
|
* as well
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue