diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2017-01-20 12:36:32 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-01-22 16:58:31 -0500 |
commit | 64ff2aef91afdff7f22eaef05a65b5bc3429ef21 (patch) | |
tree | 3f6a0d0259b80798d51a5aefcb2496e3ab95197c /drivers/net/dsa/bcm_sf2.c | |
parent | ebb2ac4f32c32364b6f522270aeb0811829bd3cb (diff) | |
download | op-kernel-dev-64ff2aef91afdff7f22eaef05a65b5bc3429ef21.zip op-kernel-dev-64ff2aef91afdff7f22eaef05a65b5bc3429ef21.tar.gz |
net: dsa: bcm_sf2: Allow non-IMP ports to have Broadcom tags enabled
Parse the "brcm,use-bcm-hdr" boolean property during ports
identification to fill a bitmask of ports that should have Broadcom tags
enabled. This is needed in some configurations where per-packet metadata
can be exchanged using Broadcom tags between the switch and an on-chip
acceleration device.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/dsa/bcm_sf2.c')
-rw-r--r-- | drivers/net/dsa/bcm_sf2.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c index 571e112..8eecfd2 100644 --- a/drivers/net/dsa/bcm_sf2.c +++ b/drivers/net/dsa/bcm_sf2.c @@ -236,6 +236,10 @@ static int bcm_sf2_port_setup(struct dsa_switch *ds, int port, reg &= ~P_TXQ_PSM_VDD(port); core_writel(priv, reg, CORE_MEM_PSM_VDD_CTRL); + /* Enable Broadcom tags for that port if requested */ + if (priv->brcm_tag_mask & BIT(port)) + bcm_sf2_brcm_hdr_setup(priv, port); + /* Clear the Rx and Tx disable bits and set to no spanning tree */ core_writel(priv, 0, CORE_G_PCTL_PORT(port)); @@ -515,6 +519,9 @@ static void bcm_sf2_identify_ports(struct bcm_sf2_priv *priv, if (mode == PHY_INTERFACE_MODE_MOCA) priv->moca_port = port_num; + + if (of_property_read_bool(port, "brcm,use-bcm-hdr")) + priv->brcm_tag_mask |= 1 << port_num; } } |