]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
net: dsa: seville: build as separate module
authorVladimir Oltean <vladimir.oltean@nxp.com>
Fri, 18 Sep 2020 10:57:53 +0000 (13:57 +0300)
committerDavid S. Miller <davem@davemloft.net>
Sat, 19 Sep 2020 00:52:51 +0000 (17:52 -0700)
Seville does not need to depend on PCI or on the ENETC MDIO controller.
There will also be other compile-time differences in the future.

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/dsa/ocelot/Makefile
drivers/net/dsa/ocelot/felix.c
drivers/net/dsa/ocelot/felix.h
drivers/net/dsa/ocelot/felix_vsc9959.c
drivers/net/dsa/ocelot/seville_vsc9953.c

index e19718d4a7d4a2c3bed5eb18102eeabbca6efe2a..c110e82a797374f476918c41e5481c638ef1cc56 100644 (file)
@@ -10,11 +10,17 @@ config NET_DSA_MSCC_FELIX
        select FSL_ENETC_MDIO
        select PCS_LYNX
        help
-         This driver supports network switches from the Vitesse /
-         Microsemi / Microchip Ocelot family of switching cores that are
-         connected to their host CPU via Ethernet.
-         The following switches are supported:
-         - VSC9959 (Felix): embedded as a PCIe function of the NXP LS1028A
-           ENETC integrated endpoint.
-         - VSC9953 (Seville): embedded as a platform device on the
-           NXP T1040 SoC.
+         This driver supports the VSC9959 (Felix) switch, which is embedded as
+         a PCIe function of the NXP LS1028A ENETC RCiEP.
+
+config NET_DSA_MSCC_SEVILLE
+       tristate "Ocelot / Seville Ethernet switch support"
+       depends on NET_DSA
+       depends on NET_VENDOR_MICROSEMI
+       depends on HAS_IOMEM
+       select MSCC_OCELOT_SWITCH_LIB
+       select NET_DSA_TAG_OCELOT
+       select PCS_LYNX
+       help
+         This driver supports the VSC9953 (Seville) switch, which is embedded
+         as a platform device on the NXP T1040 SoC.
index ec57a5a12330b7b9418fa1574326e82c29503e1d..f6dd131e7491a3e2d71bdb7c50c5a21415b9c51f 100644 (file)
@@ -1,7 +1,11 @@
 # SPDX-License-Identifier: GPL-2.0-only
 obj-$(CONFIG_NET_DSA_MSCC_FELIX) += mscc_felix.o
+obj-$(CONFIG_NET_DSA_MSCC_SEVILLE) += mscc_seville.o
 
 mscc_felix-objs := \
        felix.o \
-       felix_vsc9959.o \
+       felix_vsc9959.o
+
+mscc_seville-objs := \
+       felix.o \
        seville_vsc9953.o
index 643a0fa657354dca85025ca5cae94cac4337313d..f9a7034be0c75be3093f6de982957c9d0a09753d 100644 (file)
@@ -782,29 +782,3 @@ const struct dsa_switch_ops felix_switch_ops = {
        .cls_flower_stats       = felix_cls_flower_stats,
        .port_setup_tc          = felix_port_setup_tc,
 };
-
-static int __init felix_init(void)
-{
-       int err;
-
-       err = pci_register_driver(&felix_vsc9959_pci_driver);
-       if (err)
-               return err;
-
-       err = platform_driver_register(&seville_vsc9953_driver);
-       if (err)
-               return err;
-
-       return 0;
-}
-module_init(felix_init);
-
-static void __exit felix_exit(void)
-{
-       pci_unregister_driver(&felix_vsc9959_pci_driver);
-       platform_driver_unregister(&seville_vsc9953_driver);
-}
-module_exit(felix_exit);
-
-MODULE_DESCRIPTION("Felix Switch driver");
-MODULE_LICENSE("GPL v2");
index d0b2043e0ccbd693443c3f7541d276a85c48bca7..cc3ec83a600adc94fa9ca86b672ab7224bfce9c0 100644 (file)
@@ -42,8 +42,6 @@ struct felix_info {
 };
 
 extern const struct dsa_switch_ops felix_switch_ops;
-extern struct pci_driver felix_vsc9959_pci_driver;
-extern struct platform_driver seville_vsc9953_driver;
 
 /* DSA glue / front-end for struct ocelot */
 struct felix {
index 38e0fba6bca80739c8c111c895011247ccdcbdfb..79ddc4ba27a32c6cd8cd2fd82f2e6f2cbc558973 100644 (file)
@@ -1328,9 +1328,13 @@ static struct pci_device_id felix_ids[] = {
 };
 MODULE_DEVICE_TABLE(pci, felix_ids);
 
-struct pci_driver felix_vsc9959_pci_driver = {
+static struct pci_driver felix_vsc9959_pci_driver = {
        .name           = "mscc_felix",
        .id_table       = felix_ids,
        .probe          = felix_pci_probe,
        .remove         = felix_pci_remove,
 };
+module_pci_driver(felix_vsc9959_pci_driver);
+
+MODULE_DESCRIPTION("Felix Switch driver");
+MODULE_LICENSE("GPL v2");
index fa05f1f2619e7ba96dc5eeddaf669f9d1c4653dc..12c7fb9c2c3f8ee1805219628fa4aef14b1acd8f 100644 (file)
@@ -1110,7 +1110,7 @@ static const struct of_device_id seville_of_match[] = {
 };
 MODULE_DEVICE_TABLE(of, seville_of_match);
 
-struct platform_driver seville_vsc9953_driver = {
+static struct platform_driver seville_vsc9953_driver = {
        .probe          = seville_probe,
        .remove         = seville_remove,
        .driver = {
@@ -1118,3 +1118,7 @@ struct platform_driver seville_vsc9953_driver = {
                .of_match_table = of_match_ptr(seville_of_match),
        },
 };
+module_platform_driver(seville_vsc9953_driver);
+
+MODULE_DESCRIPTION("Seville Switch driver");
+MODULE_LICENSE("GPL v2");