Commit d60bc62d authored by Vladimir Oltean's avatar Vladimir Oltean Committed by David S. Miller
Browse files

net: dsa: seville: build as separate module



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: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2ac7c6c5
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -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.
+5 −1
Original line number Diff line number Diff line
# 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
+0 −26
Original line number Diff line number Diff line
@@ -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");
+0 −2
Original line number Diff line number Diff line
@@ -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 {
+5 −1
Original line number Diff line number Diff line
@@ -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");
Loading