Message ID | 20210315142736.7232-3-noltari@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: dsa: b53: support legacy tags | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | success | CCed 7 of 7 maintainers |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 32 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | Link |
On 3/15/2021 7:27 AM, Álvaro Fernández Rojas wrote: > These tags are used on BCM5325, BCM5365 and BCM63xx switches. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- > drivers/net/dsa/b53/Kconfig | 1 + > drivers/net/dsa/b53/b53_common.c | 9 +++++++-- > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/dsa/b53/Kconfig b/drivers/net/dsa/b53/Kconfig > index f9891a81c808..90b525160b71 100644 > --- a/drivers/net/dsa/b53/Kconfig > +++ b/drivers/net/dsa/b53/Kconfig > @@ -3,6 +3,7 @@ menuconfig B53 > tristate "Broadcom BCM53xx managed switch support" > depends on NET_DSA > select NET_DSA_TAG_BRCM > + select NET_DSA_TAG_BRCM_LEGACY > select NET_DSA_TAG_BRCM_PREPEND > help > This driver adds support for Broadcom managed switch chips. It supports > diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c > index a162499bcafc..a583948cdf4f 100644 > --- a/drivers/net/dsa/b53/b53_common.c > +++ b/drivers/net/dsa/b53/b53_common.c > @@ -2034,6 +2034,7 @@ static bool b53_can_enable_brcm_tags(struct dsa_switch *ds, int port, > > switch (tag_protocol) { > case DSA_TAG_PROTO_BRCM: > + case DSA_TAG_PROTO_BRCM_LEGACY: > case DSA_TAG_PROTO_BRCM_PREPEND: I am not sure about that one, so for now we can probably be conservative. You can definitively not "stack" two or more switches that are configured with DSA_TAG_PROTO_BRCM because the first switch receiving the Broadcom tag will terminate it locally and not pass it up. The legacy Broadcom tag however is different and has a "Scr Dev ID" field which is intended to support cascading. Whether that works with only DSA_TAG_PROTO_BRCM_LEGACY or across DSA_PROTO_BRCM_LEGACY + DSA_TAG_PROTO_BRCM may be something you will have to determine. Acked-by: Florian Fainelli <f.fainelli@gmail.com>
diff --git a/drivers/net/dsa/b53/Kconfig b/drivers/net/dsa/b53/Kconfig index f9891a81c808..90b525160b71 100644 --- a/drivers/net/dsa/b53/Kconfig +++ b/drivers/net/dsa/b53/Kconfig @@ -3,6 +3,7 @@ menuconfig B53 tristate "Broadcom BCM53xx managed switch support" depends on NET_DSA select NET_DSA_TAG_BRCM + select NET_DSA_TAG_BRCM_LEGACY select NET_DSA_TAG_BRCM_PREPEND help This driver adds support for Broadcom managed switch chips. It supports diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c index a162499bcafc..a583948cdf4f 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -2034,6 +2034,7 @@ static bool b53_can_enable_brcm_tags(struct dsa_switch *ds, int port, switch (tag_protocol) { case DSA_TAG_PROTO_BRCM: + case DSA_TAG_PROTO_BRCM_LEGACY: case DSA_TAG_PROTO_BRCM_PREPEND: dev_warn(ds->dev, "Port %d is stacked to Broadcom tag switch\n", port); @@ -2055,12 +2056,16 @@ enum dsa_tag_protocol b53_get_tag_protocol(struct dsa_switch *ds, int port, /* Older models (5325, 5365) support a different tag format that we do * not support in net/dsa/tag_brcm.c yet. */ - if (is5325(dev) || is5365(dev) || - !b53_can_enable_brcm_tags(ds, port, mprot)) { + if (!b53_can_enable_brcm_tags(ds, port, mprot)) { dev->tag_protocol = DSA_TAG_PROTO_NONE; goto out; } + if (is5325(dev) || is5365(dev) || is63xx(dev)) { + dev->tag_protocol = DSA_TAG_PROTO_BRCM_LEGACY; + goto out; + } + /* Broadcom BCM58xx chips have a flow accelerator on Port 8 * which requires us to use the prepended Broadcom tag type */
These tags are used on BCM5325, BCM5365 and BCM63xx switches. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> --- drivers/net/dsa/b53/Kconfig | 1 + drivers/net/dsa/b53/b53_common.c | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-)