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 a5b7cca03d0920767aeb6889725947435c52d592..3d3c2a6fb0c01cdf4574aa4791e2ce539c5e2526 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 bcec0587cf6123ecf68cf484ab41c3f55549beab..24db927e8b3014d6a8fb3a402a50735d898b8ca4 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 53572bb76ccd8bc0604395a50d4a9863cefa9c11..77222e47d63f44bb2ec05d6e7a06f9a344f28f50 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