From: David S. Miller Date: Thu, 9 Jan 2020 00:01:14 +0000 (-0800) Subject: Merge branch 'Broadcom-tags-support-for-531x5-539x-families' X-Git-Tag: Ubuntu-5.13.0-19.19~6812^2~133 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=78b6d073bc0101f9147845ba868d9d2e6189f990;p=mirror_ubuntu-jammy-kernel.git Merge branch 'Broadcom-tags-support-for-531x5-539x-families' Florian Fainelli says: ==================== Broadcom tags support for 531x5/539x families This patch series finally allows us to enable Broadcom tags on the BCM531x5/BCM539x switch series which are very often cascaded onto another on-chip Broadcom switch. Because of that we need to be able to detect that Broadcom tags are already enabled on our DSA master which happens to be a DSA slave in that case since they are not part of the same DSA switch tree, the protocol does not support that. Due to the way DSA works, get_tag_protocol() is called prior to ds->ops->setup and we do not have all data structures set-up (in particular dsa_port::cpu_dp is not filed yet) so doing this at the time get_tag_protocol() is called and without exporting a helper function is desirable to limit our footprint into the framework. Having the core (net/dsa/dsa2.c) return and enforce DSA_TAG_PROTO_NONE was considered and done initially but this leaves the driver outside of the decision to force/fallback to a particular protocol, instead of letting it in control. Also there is no reason to suspect that all tagging protocols are problematic, e.g.: "inner" Marvell EDSA with "outer" Broadcom tag may work just fine, and vice versa. This was tested on: - Lamobo R1 which now has working Broadcom tags for its external BCM53125 switch - BCM7445 which has a BCM53125 hanging off one of its internal switch port, the BCM53125 still works with DSA_TAG_PROTO_NONE - BCM7278 which has a peculiar dual CPU port set-up (so dual IMP mode needs to be enabled) - Northstar Plus with DSA_TAG_PROTO_BRCM_PREPEND and no external switches hanging off the internal switch ==================== Signed-off-by: David S. Miller --- 78b6d073bc0101f9147845ba868d9d2e6189f990