dsa: Hide core config options; make drivers select what they need
authorBen Hutchings <bhutchings@solarflare.com>
Mon, 26 Nov 2012 09:16:10 +0000 (09:16 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 26 Nov 2012 22:10:44 +0000 (17:10 -0500)
Commit 82167cb8c6b2f8166d5c7532e5ef4b5e0cc46a72 ('net: dsa/slave: Fix
compilation warnings') fixed one possible invalid configuration
(NET_DSA enabled with no trailer formats) but added others: drivers
can select NET_DSA without its dependencies being met.

It's not very useful to make either the DSA core or the tagging
formats manually selectable without a driver to use them, so:

1. Define a hidden HAVE_NET_DSA option and move the dependencies of
   NET_DSA to that.  While we're at it, drop the deprecated
   EXPERIMENTAL dependency.
2. Make NET_DSA and the drivers dependent on HAVE_NET_DSA.
3. Hide the tagging format options again.
4. Make drivers select both NET_DSA and the appropriate tagging format
   option.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/Kconfig
net/dsa/Kconfig

index 96eae22f612be2bfd1c12583adfe19ef4d27f653..b8fe808b7957c735e0f4c8248ad3bcff14b46716 100644 (file)
@@ -1,4 +1,5 @@
 menu "Distributed Switch Architecture drivers"
+       depends on HAVE_NET_DSA
 
 config NET_DSA_MV88E6XXX
        tristate
@@ -6,6 +7,7 @@ config NET_DSA_MV88E6XXX
 
 config NET_DSA_MV88E6060
        tristate "Marvell 88E6060 ethernet switch chip support"
+       select NET_DSA
        select NET_DSA_TAG_TRAILER
        ---help---
          This enables support for the Marvell 88E6060 ethernet switch
@@ -17,6 +19,7 @@ config NET_DSA_MV88E6XXX_NEED_PPU
 
 config NET_DSA_MV88E6131
        tristate "Marvell 88E6085/6095/6095F/6131 ethernet switch chip support"
+       select NET_DSA
        select NET_DSA_MV88E6XXX
        select NET_DSA_MV88E6XXX_NEED_PPU
        select NET_DSA_TAG_DSA
@@ -26,6 +29,7 @@ config NET_DSA_MV88E6131
 
 config NET_DSA_MV88E6123_61_65
        tristate "Marvell 88E6123/6161/6165 ethernet switch chip support"
+       select NET_DSA
        select NET_DSA_MV88E6XXX
        select NET_DSA_TAG_EDSA
        ---help---
index 0f5dc344ed92e1d679ac4a414713582528642eb9..f5eede1d6cb8eb92cbf97b1b37de1362f13ac095 100644 (file)
@@ -1,28 +1,24 @@
+config HAVE_NET_DSA
+       def_bool y
+       depends on NETDEVICES && !S390
+
+# Drivers must select NET_DSA and the appropriate tagging format
+
 config NET_DSA
        tristate
-       default n
-       depends on EXPERIMENTAL && NETDEVICES && !S390
+       depends on HAVE_NET_DSA
        select PHYLIB
-       ---help---
-         This allows you to use hardware switch chips that use
-         the Distributed Switch Architecture.
 
-
-menu "Distributed Switch Architecture support"
+if NET_DSA
 
 # tagging formats
 config NET_DSA_TAG_DSA
-       bool "Original DSA packet tagging format"
-       select NET_DSA
-       default n
+       bool
 
 config NET_DSA_TAG_EDSA
-       bool "Ethertype DSA packet tagging format"
-       select NET_DSA
-       default n
+       bool
 
 config NET_DSA_TAG_TRAILER
-       bool "Trailer DSA packet tagging format"
-       select NET_DSA
-       default n
-endmenu
+       bool
+
+endif