dsa: Allow core and drivers to be built as modules
authorBen Hutchings <ben@decadent.org.uk>
Fri, 25 Nov 2011 14:38:38 +0000 (14:38 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 26 Nov 2011 19:48:16 +0000 (14:48 -0500)
Change the kconfig types to tristate and adjust the condition for
declaring net_device::dsa_ptr to allow for this.

Adjust the makefile so that if NET_DSA_MV88E6123_61_65=y and
NET_DSA_MV88E6131=m or vice versa then both drivers are built-in.  We
could leave these options as bool and make NET_DSA_MV88E6XXX a
user-selected option, but that would break existing configurations.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netdevice.h
net/dsa/Kconfig
net/dsa/Makefile

index 63721a6..87f7353 100644 (file)
@@ -1079,7 +1079,7 @@ struct net_device {
 #if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
        struct vlan_group __rcu *vlgrp;         /* VLAN group */
 #endif
-#ifdef CONFIG_NET_DSA
+#if IS_ENABLED(CONFIG_NET_DSA)
        struct dsa_switch_tree  *dsa_ptr;       /* dsa specific data */
 #endif
        void                    *atalk_ptr;     /* AppleTalk link       */
index c53ded2..7e12303 100644 (file)
@@ -1,5 +1,5 @@
 menuconfig NET_DSA
-       bool "Distributed Switch Architecture support"
+       tristate "Distributed Switch Architecture support"
        default n
        depends on EXPERIMENTAL && NETDEVICES && !S390
        select PHYLIB
@@ -26,11 +26,11 @@ config NET_DSA_TAG_TRAILER
 
 # switch drivers
 config NET_DSA_MV88E6XXX
-       bool
+       tristate
        default n
 
 config NET_DSA_MV88E6060
-       bool "Marvell 88E6060 ethernet switch chip support"
+       tristate "Marvell 88E6060 ethernet switch chip support"
        select NET_DSA_TAG_TRAILER
        ---help---
          This enables support for the Marvell 88E6060 ethernet switch
@@ -41,7 +41,7 @@ config NET_DSA_MV88E6XXX_NEED_PPU
        default n
 
 config NET_DSA_MV88E6131
-       bool "Marvell 88E6085/6095/6095F/6131 ethernet switch chip support"
+       tristate "Marvell 88E6085/6095/6095F/6131 ethernet switch chip support"
        select NET_DSA_MV88E6XXX
        select NET_DSA_MV88E6XXX_NEED_PPU
        select NET_DSA_TAG_DSA
@@ -50,7 +50,7 @@ config NET_DSA_MV88E6131
          ethernet switch chips.
 
 config NET_DSA_MV88E6123_61_65
-       bool "Marvell 88E6123/6161/6165 ethernet switch chip support"
+       tristate "Marvell 88E6123/6161/6165 ethernet switch chip support"
        select NET_DSA_MV88E6XXX
        select NET_DSA_TAG_EDSA
        ---help---
index 5c48ac5..191dd48 100644 (file)
@@ -11,5 +11,9 @@ dsa_core-$(CONFIG_NET_DSA_TAG_TRAILER) += tag_trailer.o
 obj-$(CONFIG_NET_DSA_MV88E6060) += mv88e6060.o
 obj-$(CONFIG_NET_DSA_MV88E6XXX) += mv88e6xxx_drv.o
 mv88e6xxx_drv-y += mv88e6xxx.o
-mv88e6xxx_drv-$(CONFIG_NET_DSA_MV88E6123_61_65) += mv88e6123_61_65.o
-mv88e6xxx_drv-$(CONFIG_NET_DSA_MV88E6131) += mv88e6131.o
+ifdef CONFIG_NET_DSA_MV88E6123_61_65
+mv88e6xxx_drv-y += mv88e6123_61_65.o
+endif
+ifdef CONFIG_NET_DSA_MV88E6131
+mv88e6xxx_drv-y += mv88e6131.o
+endif