net: mscc: ocelot: convert MSCC_OCELOT_SWITCH into a library
authorVladimir Oltean <vladimir.oltean@nxp.com>
Sat, 20 Jun 2020 15:43:41 +0000 (18:43 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sun, 21 Jun 2020 00:25:23 +0000 (17:25 -0700)
Hide the CONFIG_MSCC_OCELOT_SWITCH option from users. It is meant to be
only a hardware library which is selected by the drivers that use it
(ocelot, felix).

Since it is "selected" from Kconfig, all its dependencies are manually
transferred to the driver that selects it. This is because "select" in
Kconfig language is a bit of a mess, and doesn't handle dependencies of
selected options quite right.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/ocelot/Kconfig
drivers/net/ethernet/mscc/Kconfig
drivers/net/ethernet/mscc/Makefile

index a5b7cca..3d3c2a6 100644 (file)
@@ -4,7 +4,9 @@ config NET_DSA_MSCC_FELIX
        depends on NET_DSA && PCI
        depends on NET_VENDOR_MICROSEMI
        depends on NET_VENDOR_FREESCALE
-       select MSCC_OCELOT_SWITCH
+       depends on HAS_IOMEM
+       depends on REGMAP_MMIO
+       select MSCC_OCELOT_SWITCH_LIB
        select NET_DSA_TAG_OCELOT
        select FSL_ENETC_MDIO
        help
index bcec058..24db927 100644 (file)
@@ -11,20 +11,22 @@ config NET_VENDOR_MICROSEMI
 
 if NET_VENDOR_MICROSEMI
 
-config MSCC_OCELOT_SWITCH
-       tristate "Ocelot switch driver"
-       depends on NET_SWITCHDEV
-       depends on HAS_IOMEM
-       select PHYLIB
-       select REGMAP_MMIO
+# Users should depend on NET_SWITCHDEV, HAS_IOMEM, PHYLIB and REGMAP_MMIO
+config MSCC_OCELOT_SWITCH_LIB
+       tristate
        help
-         This driver supports the Ocelot network switch device.
+         This is a hardware support library for Ocelot network switches. It is
+         used by switchdev as well as by DSA drivers.
 
 config MSCC_OCELOT_SWITCH_OCELOT
        tristate "Ocelot switch driver on Ocelot"
-       depends on MSCC_OCELOT_SWITCH
+       depends on NET_SWITCHDEV
        depends on GENERIC_PHY
+       depends on REGMAP_MMIO
+       depends on HAS_IOMEM
+       depends on PHYLIB
        depends on OF_NET
+       select MSCC_OCELOT_SWITCH_LIB
        help
          This driver supports the Ocelot network switch device as present on
          the Ocelot SoCs.
index 53572bb..77222e4 100644 (file)
@@ -1,6 +1,13 @@
 # SPDX-License-Identifier: (GPL-2.0 OR MIT)
-obj-$(CONFIG_MSCC_OCELOT_SWITCH) += mscc_ocelot_common.o
-mscc_ocelot_common-y := ocelot.o ocelot_io.o
-mscc_ocelot_common-y += ocelot_regs.o ocelot_tc.o ocelot_police.o ocelot_ace.o ocelot_flower.o ocelot_ptp.o
+obj-$(CONFIG_MSCC_OCELOT_SWITCH_LIB) += mscc_ocelot_switch_lib.o
+mscc_ocelot_switch_lib-y := \
+       ocelot.o \
+       ocelot_io.o \
+       ocelot_regs.o \
+       ocelot_tc.o \
+       ocelot_police.o \
+       ocelot_ace.o \
+       ocelot_flower.o \
+       ocelot_ptp.o
 obj-$(CONFIG_MSCC_OCELOT_SWITCH_OCELOT) += mscc_ocelot.o
 mscc_ocelot-y := ocelot_vsc7514.o