Commit 0b9f9dfb authored by Andrew Lunn's avatar Andrew Lunn Committed by David S. Miller

dsa: Allow tag drivers to be built as modules

Make the CONFIG symbols tristate and add help text.

The broadcom and Microchip KSZ tag drivers support two different
tagging protocols in one driver. Add a configuration option for the
drivers, and then options to select the protocol.

Create a submenu for the tagging drivers.
Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>

v2:
tab/space cleanup
Help text wording
NET_DSA_TAG_BRCM_COMMON and NET_DSA_TAG_KZS_COMMON hidden

v3:
More tabification
Punctuation

v4:
trailler->trailer
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3aa475e1
...@@ -4,7 +4,7 @@ config HAVE_NET_DSA ...@@ -4,7 +4,7 @@ config HAVE_NET_DSA
# Drivers must select NET_DSA and the appropriate tagging format # Drivers must select NET_DSA and the appropriate tagging format
config NET_DSA menuconfig NET_DSA
tristate "Distributed Switch Architecture" tristate "Distributed Switch Architecture"
depends on HAVE_NET_DSA depends on HAVE_NET_DSA
depends on BRIDGE || BRIDGE=n depends on BRIDGE || BRIDGE=n
...@@ -26,39 +26,84 @@ config NET_DSA_LEGACY ...@@ -26,39 +26,84 @@ config NET_DSA_LEGACY
This feature is scheduled for removal in 4.17. This feature is scheduled for removal in 4.17.
# tagging formats config NET_DSA_TAG_BRCM_COMMON
tristate
default n
config NET_DSA_TAG_BRCM config NET_DSA_TAG_BRCM
bool tristate "Tag driver for Broadcom switches using in-frame headers"
select NET_DSA_TAG_BRCM_COMMON
help
Say Y if you want to enable support for tagging frames for the
Broadcom switches which place the tag after the MAC source address.
config NET_DSA_TAG_BRCM_PREPEND config NET_DSA_TAG_BRCM_PREPEND
bool tristate "Tag driver for Broadcom switches using prepended headers"
select NET_DSA_TAG_BRCM_COMMON
help
Say Y if you want to enable support for tagging frames for the
Broadcom switches which places the tag before the Ethernet header
(prepended).
config NET_DSA_TAG_GSWIP
tristate "Tag driver for Lantiq / Intel GSWIP switches"
help
Say Y or M if you want to enable support for tagging frames for the
Lantiq / Intel GSWIP switches.
config NET_DSA_TAG_DSA config NET_DSA_TAG_DSA
bool tristate "Tag driver for Marvell switches using DSA headers"
help
Say Y or M if you want to enable support for tagging frames for the
Marvell switches which use DSA headers.
config NET_DSA_TAG_EDSA config NET_DSA_TAG_EDSA
bool tristate "Tag driver for Marvell switches using EtherType DSA headers"
help
Say Y or M if you want to enable support for tagging frames for the
Marvell switches which use EtherType DSA headers.
config NET_DSA_TAG_GSWIP config NET_DSA_TAG_MTK
bool tristate "Tag driver for Mediatek switches"
help
Say Y or M if you want to enable support for tagging frames for
Mediatek switches.
config NET_DSA_TAG_KSZ_COMMON
tristate
default n
config NET_DSA_TAG_KSZ config NET_DSA_TAG_KSZ
bool tristate "Tag driver for Microchip 9893 family of switches"
select NET_DSA_TAG_KSZ_COMMON
help
Say Y if you want to enable support for tagging frames for the
Microchip 9893 family of switches.
config NET_DSA_TAG_KSZ9477 config NET_DSA_TAG_KSZ9477
bool tristate "Tag driver for Microchip 9477 family of switches"
select NET_DSA_TAG_KSZ select NET_DSA_TAG_KSZ_COMMON
help
Say Y if you want to enable support for tagging frames for the
Microchip 9477 family of switches.
config NET_DSA_TAG_LAN9303 config NET_DSA_TAG_QCA
bool tristate "Tag driver for Qualcomm Atheros QCA8K switches"
help
Say Y or M if you want to enable support for tagging frames for
the Qualcomm Atheros QCA8K switches.
config NET_DSA_TAG_MTK config NET_DSA_TAG_LAN9303
bool tristate "Tag driver for SMSC/Microchip LAN9303 family of switches"
help
Say Y or M if you want to enable support for tagging frames for the
SMSC/Microchip LAN9303 family of switches.
config NET_DSA_TAG_TRAILER config NET_DSA_TAG_TRAILER
bool tristate "Tag driver for switches using a trailer tag"
help
config NET_DSA_TAG_QCA Say Y or M if you want to enable support for tagging frames at
bool with a trailed. e.g. Marvell 88E6060.
endif endif
...@@ -5,13 +5,12 @@ dsa_core-y += dsa.o dsa2.o master.o port.o slave.o switch.o ...@@ -5,13 +5,12 @@ dsa_core-y += dsa.o dsa2.o master.o port.o slave.o switch.o
dsa_core-$(CONFIG_NET_DSA_LEGACY) += legacy.o dsa_core-$(CONFIG_NET_DSA_LEGACY) += legacy.o
# tagging formats # tagging formats
dsa_core-$(CONFIG_NET_DSA_TAG_BRCM) += tag_brcm.o obj-$(CONFIG_NET_DSA_TAG_BRCM_COMMON) += tag_brcm.o
dsa_core-$(CONFIG_NET_DSA_TAG_BRCM_PREPEND) += tag_brcm.o obj-$(CONFIG_NET_DSA_TAG_DSA) += tag_dsa.o
dsa_core-$(CONFIG_NET_DSA_TAG_DSA) += tag_dsa.o obj-$(CONFIG_NET_DSA_TAG_EDSA) += tag_edsa.o
dsa_core-$(CONFIG_NET_DSA_TAG_EDSA) += tag_edsa.o obj-$(CONFIG_NET_DSA_TAG_GSWIP) += tag_gswip.o
dsa_core-$(CONFIG_NET_DSA_TAG_GSWIP) += tag_gswip.o obj-$(CONFIG_NET_DSA_TAG_KSZ_COMMON) += tag_ksz.o
dsa_core-$(CONFIG_NET_DSA_TAG_KSZ) += tag_ksz.o obj-$(CONFIG_NET_DSA_TAG_LAN9303) += tag_lan9303.o
dsa_core-$(CONFIG_NET_DSA_TAG_LAN9303) += tag_lan9303.o obj-$(CONFIG_NET_DSA_TAG_MTK) += tag_mtk.o
dsa_core-$(CONFIG_NET_DSA_TAG_MTK) += tag_mtk.o obj-$(CONFIG_NET_DSA_TAG_QCA) += tag_qca.o
dsa_core-$(CONFIG_NET_DSA_TAG_QCA) += tag_qca.o obj-$(CONFIG_NET_DSA_TAG_TRAILER) += tag_trailer.o
dsa_core-$(CONFIG_NET_DSA_TAG_TRAILER) += tag_trailer.o
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment