Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dsa: simplify Kconfig symbols and dependencies

1. Remove CONFIG_HAVE_NET_DSA.

CONFIG_HAVE_NET_DSA is a legacy leftover from the times when drivers
should have selected CONFIG_NET_DSA manually.
Currently, all drivers has explicit 'depends on NET_DSA', so this is
no more needed.

2. CONFIG_HAVE_NET_DSA dependencies became CONFIG_NET_DSA's ones.

- dropped !S390 dependency which was introduced to be sure NET_DSA
can select CONFIG_PHYLIB. DSA migrated to Phylink almost 3 years
ago and the PHY library itself doesn't depend on !S390 since
commit 870a2b5e4fcd ("phylib: remove !S390 dependeny from Kconfig");
- INET dependency is kept to be sure we can select NET_SWITCHDEV;
- NETDEVICES dependency is kept to be sure we can select PHYLINK.

3. DSA drivers menu now depends on NET_DSA.

Instead on 'depends on NET_DSA' on every single driver, the entire
menu now depends on it. This eliminates a lot of duplicated lines
from Kconfig with no loss (when CONFIG_NET_DSA=m, drivers also can
be only m or n).
This also has a nice side effect that there's no more empty menu on
configurations without DSA.

4. Kbuild will now descend into 'drivers/net/dsa' only when
CONFIG_NET_DSA is y or m.

This is safe since no objects inside this folder can be built without
DSA core, as well as when CONFIG_NET_DSA=m, no objects can be
built-in.

Signed-off-by: Alexander Lobakin <alobakin@pm.me>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Alexander Lobakin and committed by
David S. Miller
227d7206 a1e6f641

+8 -21
+1 -1
drivers/net/Makefile
··· 45 45 obj-$(CONFIG_DEV_APPLETALK) += appletalk/ 46 46 obj-$(CONFIG_CAIF) += caif/ 47 47 obj-$(CONFIG_CAN) += can/ 48 - obj-y += dsa/ 48 + obj-$(CONFIG_NET_DSA) += dsa/ 49 49 obj-$(CONFIG_ETHERNET) += ethernet/ 50 50 obj-$(CONFIG_FDDI) += fddi/ 51 51 obj-$(CONFIG_HIPPI) += hippi/
+4 -13
drivers/net/dsa/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 2 menu "Distributed Switch Architecture drivers" 3 - depends on HAVE_NET_DSA 3 + depends on NET_DSA 4 4 5 5 source "drivers/net/dsa/b53/Kconfig" 6 6 7 7 config NET_DSA_BCM_SF2 8 8 tristate "Broadcom Starfighter 2 Ethernet switch support" 9 - depends on HAS_IOMEM && NET_DSA 9 + depends on HAS_IOMEM 10 10 select NET_DSA_TAG_BRCM 11 11 select FIXED_PHY 12 12 select BCM7XXX_PHY ··· 18 18 19 19 config NET_DSA_LOOP 20 20 tristate "DSA mock-up Ethernet switch chip support" 21 - depends on NET_DSA 22 21 select FIXED_PHY 23 22 help 24 23 This enables support for a fake mock-up switch chip which ··· 27 28 28 29 config NET_DSA_LANTIQ_GSWIP 29 30 tristate "Lantiq / Intel GSWIP" 30 - depends on HAS_IOMEM && NET_DSA 31 + depends on HAS_IOMEM 31 32 select NET_DSA_TAG_GSWIP 32 33 help 33 34 This enables support for the Lantiq / Intel GSWIP 2.1 found in ··· 35 36 36 37 config NET_DSA_MT7530 37 38 tristate "MediaTek MT753x and MT7621 Ethernet switch support" 38 - depends on NET_DSA 39 39 select NET_DSA_TAG_MTK 40 40 help 41 41 This enables support for the MediaTek MT7530, MT7531, and MT7621 ··· 42 44 43 45 config NET_DSA_MV88E6060 44 46 tristate "Marvell 88E6060 ethernet switch chip support" 45 - depends on NET_DSA 46 47 select NET_DSA_TAG_TRAILER 47 48 help 48 49 This enables support for the Marvell 88E6060 ethernet switch ··· 61 64 62 65 config NET_DSA_QCA8K 63 66 tristate "Qualcomm Atheros QCA8K Ethernet switch family support" 64 - depends on NET_DSA 65 67 select NET_DSA_TAG_QCA 66 68 select REGMAP 67 69 help ··· 69 73 70 74 config NET_DSA_REALTEK_SMI 71 75 tristate "Realtek SMI Ethernet switch family support" 72 - depends on NET_DSA 73 76 select NET_DSA_TAG_RTL4_A 74 77 select FIXED_PHY 75 78 select IRQ_DOMAIN ··· 88 93 89 94 config NET_DSA_SMSC_LAN9303_I2C 90 95 tristate "SMSC/Microchip LAN9303 3-ports 10/100 ethernet switch in I2C managed mode" 91 - depends on NET_DSA && I2C 96 + depends on I2C 92 97 select NET_DSA_SMSC_LAN9303 93 98 select REGMAP_I2C 94 99 help ··· 97 102 98 103 config NET_DSA_SMSC_LAN9303_MDIO 99 104 tristate "SMSC/Microchip LAN9303 3-ports 10/100 ethernet switch in MDIO managed mode" 100 - depends on NET_DSA 101 105 select NET_DSA_SMSC_LAN9303 102 106 help 103 107 Enable access functions if the SMSC/Microchip LAN9303 is configured ··· 104 110 105 111 config NET_DSA_VITESSE_VSC73XX 106 112 tristate 107 - depends on NET_DSA 108 113 select FIXED_PHY 109 114 select VITESSE_PHY 110 115 select GPIOLIB ··· 113 120 114 121 config NET_DSA_VITESSE_VSC73XX_SPI 115 122 tristate "Vitesse VSC7385/7388/7395/7398 SPI mode support" 116 - depends on NET_DSA 117 123 depends on SPI 118 124 select NET_DSA_VITESSE_VSC73XX 119 125 help ··· 121 129 122 130 config NET_DSA_VITESSE_VSC73XX_PLATFORM 123 131 tristate "Vitesse VSC7385/7388/7395/7398 Platform mode support" 124 - depends on NET_DSA 125 132 depends on HAS_IOMEM 126 133 select NET_DSA_VITESSE_VSC73XX 127 134 help
+3 -7
net/dsa/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 - config HAVE_NET_DSA 3 - def_bool y 4 - depends on INET && NETDEVICES && !S390 5 - 6 - # Drivers must select NET_DSA and the appropriate tagging format 7 2 8 3 menuconfig NET_DSA 9 4 tristate "Distributed Switch Architecture" 10 - depends on HAVE_NET_DSA 11 5 depends on BRIDGE || BRIDGE=n 12 6 depends on HSR || HSR=n 7 + depends on INET && NETDEVICES 13 8 select GRO_CELLS 14 9 select NET_SWITCHDEV 15 10 select PHYLINK ··· 15 20 16 21 if NET_DSA 17 22 18 - # tagging formats 23 + # Drivers must select the appropriate tagging format(s) 24 + 19 25 config NET_DSA_TAG_8021Q 20 26 tristate 21 27 select VLAN_8021Q