dsa: Allow tag drivers to be built as modules
authorAndrew Lunn <andrew@lunn.ch>
Sun, 28 Apr 2019 17:37:23 +0000 (19:37 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 28 Apr 2019 23:41:01 +0000 (19:41 -0400)
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: Andrew 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: David S. Miller <davem@davemloft.net>
net/dsa/Kconfig
net/dsa/Makefile

index b695170795c2c800113983795f903466c609006d..1f48642089ead8ebf9fb822960b5f7b59c35546b 100644 (file)
@@ -4,7 +4,7 @@ config HAVE_NET_DSA
 
 # Drivers must select NET_DSA and the appropriate tagging format
 
-config NET_DSA
+menuconfig NET_DSA
        tristate "Distributed Switch Architecture"
        depends on HAVE_NET_DSA
        depends on BRIDGE || BRIDGE=n
@@ -26,39 +26,84 @@ config NET_DSA_LEGACY
 
          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
-       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
-       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
-       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
-       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
-       bool
+config NET_DSA_TAG_MTK
+       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
-       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
-       bool
-       select NET_DSA_TAG_KSZ
+       tristate "Tag driver for Microchip 9477 family of switches"
+       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
-       bool
+config NET_DSA_TAG_QCA
+       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
-       bool
+config NET_DSA_TAG_LAN9303
+       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
-       bool
-
-config NET_DSA_TAG_QCA
-       bool
+       tristate "Tag driver for switches using a trailer tag"
+       help
+         Say Y or M if you want to enable support for tagging frames at
+         with a trailed. e.g. Marvell 88E6060.
 
 endif
index 6e721f7a2947f1a48716f1cff04b394c04658c2b..717ac16181008105c4f18bb52b707a9cbc23826b 100644 (file)
@@ -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
 
 # tagging formats
-dsa_core-$(CONFIG_NET_DSA_TAG_BRCM) += tag_brcm.o
-dsa_core-$(CONFIG_NET_DSA_TAG_BRCM_PREPEND) += tag_brcm.o
-dsa_core-$(CONFIG_NET_DSA_TAG_DSA) += tag_dsa.o
-dsa_core-$(CONFIG_NET_DSA_TAG_EDSA) += tag_edsa.o
-dsa_core-$(CONFIG_NET_DSA_TAG_GSWIP) += tag_gswip.o
-dsa_core-$(CONFIG_NET_DSA_TAG_KSZ) += tag_ksz.o
-dsa_core-$(CONFIG_NET_DSA_TAG_LAN9303) += tag_lan9303.o
-dsa_core-$(CONFIG_NET_DSA_TAG_MTK) += tag_mtk.o
-dsa_core-$(CONFIG_NET_DSA_TAG_QCA) += tag_qca.o
-dsa_core-$(CONFIG_NET_DSA_TAG_TRAILER) += tag_trailer.o
+obj-$(CONFIG_NET_DSA_TAG_BRCM_COMMON) += tag_brcm.o
+obj-$(CONFIG_NET_DSA_TAG_DSA) += tag_dsa.o
+obj-$(CONFIG_NET_DSA_TAG_EDSA) += tag_edsa.o
+obj-$(CONFIG_NET_DSA_TAG_GSWIP) += tag_gswip.o
+obj-$(CONFIG_NET_DSA_TAG_KSZ_COMMON) += tag_ksz.o
+obj-$(CONFIG_NET_DSA_TAG_LAN9303) += tag_lan9303.o
+obj-$(CONFIG_NET_DSA_TAG_MTK) += tag_mtk.o
+obj-$(CONFIG_NET_DSA_TAG_QCA) += tag_qca.o
+obj-$(CONFIG_NET_DSA_TAG_TRAILER) += tag_trailer.o