summaryrefslogtreecommitdiffstats
path: root/drivers/net/Space.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-01-29 01:41:54 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-01-29 01:41:54 +0000
commitf969d69ba9f952e5bdd38278e25e26a3e4a61a70 (patch)
treeb3530d803df59d726afaabebc6626987dee1ca05 /drivers/net/Space.c
parenta10ce7ef2066b455d69187643ddf2073bfc4db24 (diff)
Merge with 2.3.27.
Diffstat (limited to 'drivers/net/Space.c')
-rw-r--r--drivers/net/Space.c326
1 files changed, 27 insertions, 299 deletions
diff --git a/drivers/net/Space.c b/drivers/net/Space.c
index 31182b810..c1abe360b 100644
--- a/drivers/net/Space.c
+++ b/drivers/net/Space.c
@@ -42,24 +42,20 @@
*/
extern int ne2_probe(struct net_device *dev);
-extern int tulip_probe(struct net_device *dev);
extern int hp100_probe(struct net_device *dev);
extern int ultra_probe(struct net_device *dev);
extern int ultra32_probe(struct net_device *dev);
extern int ultramca_probe(struct net_device *dev);
extern int wd_probe(struct net_device *dev);
extern int el2_probe(struct net_device *dev);
-extern int ne2k_pci_probe(struct net_device *dev);
extern int ne_probe(struct net_device *dev);
extern int hp_probe(struct net_device *dev);
extern int hp_plus_probe(struct net_device *dev);
extern int znet_probe(struct net_device *);
extern int express_probe(struct net_device *);
extern int eepro_probe(struct net_device *);
-extern int eepro100_probe(struct net_device *);
extern int el3_probe(struct net_device *);
extern int at1500_probe(struct net_device *);
-extern int pcnet32_probe(struct net_device *);
extern int at1700_probe(struct net_device *);
extern int fmv18x_probe(struct net_device *);
extern int eth16i_probe(struct net_device *);
@@ -86,14 +82,7 @@ extern int sonic_probe(struct net_device *);
extern int ioc3_probe(struct net_device *);
extern int SK_init(struct net_device *);
extern int seeq8005_probe(struct net_device *);
-extern int tc59x_probe(struct net_device *);
-extern int dgrs_probe(struct net_device *);
extern int smc_init( struct net_device * );
-extern int sparc_lance_probe(struct net_device *);
-extern int happy_meal_probe(struct net_device *);
-extern int qec_probe(struct net_device *);
-extern int bigmac_probe(struct net_device *);
-extern int myri_sbus_probe(struct net_device *);
extern int sgiseeq_probe(struct net_device *);
extern int atarilance_probe(struct net_device *);
extern int sun3lance_probe(struct net_device *);
@@ -105,33 +94,19 @@ extern int apne_probe(struct net_device *);
extern int bionet_probe(struct net_device *);
extern int pamsnet_probe(struct net_device *);
extern int tlan_probe(struct net_device *);
-extern int mace_probe(struct net_device *);
-extern int bmac_probe(struct net_device *);
-extern int ncr885e_probe(struct net_device *);
extern int cs89x0_probe(struct net_device *dev);
extern int ethertap_probe(struct net_device *dev);
extern int ether1_probe (struct net_device *dev);
extern int ether3_probe (struct net_device *dev);
extern int etherh_probe (struct net_device *dev);
extern int am79c961_probe(struct net_device *dev);
-extern int epic100_probe(struct net_device *dev);
-extern int rtl8139_probe(struct net_device *dev);
-extern int sis900_probe(struct net_device *dev);
extern int hplance_probe(struct net_device *dev);
extern int bagetlance_probe(struct net_device *);
extern int dec_lance_probe(struct net_device *);
extern int mvme147lance_probe(struct net_device *dev);
-extern int via_rhine_probe(struct net_device *dev);
extern int tc515_probe(struct net_device *dev);
extern int lance_probe(struct net_device *dev);
-extern int starfire_probe(struct net_device *dev);
-extern int rcpci_probe(struct net_device *);
extern int mac_onboard_sonic_probe(struct net_device *dev);
-extern int dmfe_reg_board(struct net_device *);
-
-/* Gigabit Ethernet adapters */
-extern int yellowfin_probe(struct net_device *dev);
-extern int acenic_probe(struct net_device *dev);
/* Detachable devices ("pocket adaptors") */
extern int atp_init(struct net_device *);
@@ -142,9 +117,6 @@ extern int de620_probe(struct net_device *);
extern int dfx_probe(struct net_device *dev);
extern int apfddi_init(struct net_device *dev);
-/* HIPPI boards */
-extern int rr_hippi_probe(struct net_device *);
-
/* Fibre Channel adapters */
extern int iph5526_probe(struct net_device *dev);
@@ -183,74 +155,15 @@ static int __init probe_list(struct net_device *dev, struct devprobe *plist)
}
/*
- * If your probe touches ISA ports (<0x400) in addition to
- * looking for PCI cards, then put it in the isa_probes
- * list instead.
- */
-struct devprobe pci_probes[] __initdata = {
-#ifdef CONFIG_DGRS
- {dgrs_probe, 0},
-#endif
-#ifdef CONFIG_RCPCI
- {rcpci_probe, 0},
-#endif
-#ifdef CONFIG_VORTEX
- {tc59x_probe, 0},
-#endif
-#ifdef CONFIG_NE2K_PCI
- {ne2k_pci_probe, 0},
-#endif
-#ifdef CONFIG_PCNET32
- {pcnet32_probe, 0},
-#endif
-#ifdef CONFIG_EEXPRESS_PRO100 /* Intel EtherExpress Pro/100 */
- {eepro100_probe, 0},
-#endif
-#ifdef CONFIG_DEC_ELCP
- {tulip_probe, 0},
-#endif
-#ifdef CONFIG_DE4X5 /* DEC DE425, DE434, DE435 adapters */
- {de4x5_probe, 0},
-#endif
-#ifdef CONFIG_TLAN
- {tlan_probe, 0},
-#endif
-#ifdef CONFIG_EPIC100
- {epic100_probe, 0},
-#endif
-#ifdef CONFIG_RTL8139
- {rtl8139_probe, 0},
-#endif
-#ifdef CONFIG_SIS900
- {sis900_probe, 0},
-#endif
-
-#ifdef CONFIG_DM9102
- {dmfe_reg_board, 0},
-#endif
-
-#ifdef CONFIG_YELLOWFIN
- {yellowfin_probe, 0},
-#endif
-#ifdef CONFIG_ACENIC
- {acenic_probe, 0},
-#endif
-#ifdef CONFIG_VIA_RHINE
- {via_rhine_probe, 0},
-#endif
-#ifdef CONFIG_ADAPTEC_STARFIRE
- {starfire_probe, 0},
-#endif
- {NULL, 0},
-};
-
-/*
* This is a bit of an artificial separation as there are PCI drivers
* that also probe for EISA cards (in the PCI group) and there are ISA
* drivers that probe for EISA cards (in the ISA group). These are the
- * EISA only driver probes.
+ * EISA only driver probes, and also the legacy PCI probes
*/
struct devprobe eisa_probes[] __initdata = {
+#ifdef CONFIG_TLAN
+ {tlan_probe, 0},
+#endif
#ifdef CONFIG_ULTRA32
{ultra32_probe, 0},
#endif
@@ -269,24 +182,6 @@ struct devprobe eisa_probes[] __initdata = {
{NULL, 0},
};
-struct devprobe sparc_probes[] __initdata = {
-#ifdef CONFIG_HAPPYMEAL
- {happy_meal_probe, 0},
-#endif
-#ifdef CONFIG_SUNLANCE
- {sparc_lance_probe, 0},
-#endif
-#ifdef CONFIG_SUNQE
- {qec_probe, 0},
-#endif
-#ifdef CONFIG_SUNBMAC
- {bigmac_probe, 0},
-#endif
-#ifdef CONFIG_MYRI_SBUS
- {myri_sbus_probe, 0},
-#endif
- {NULL, 0},
-};
struct devprobe mca_probes[] __initdata = {
#ifdef CONFIG_ULTRAMCA
@@ -464,18 +359,6 @@ struct devprobe m68k_probes[] __initdata = {
{NULL, 0},
};
-struct devprobe ppc_probes[] __initdata = {
-#ifdef CONFIG_MACE
- {mace_probe, 0},
-#endif
-#ifdef CONFIG_BMAC
- {bmac_probe, 0},
-#endif
-#ifdef CONFIG_NCR885E
- {ncr885e_probe, 0},
-#endif
- {NULL, 0},
-};
struct devprobe sgi_probes[] __initdata = {
#ifdef CONFIG_SGISEEQ
@@ -518,8 +401,9 @@ struct devprobe arm_probes[] __initdata = {
/*
* Unified ethernet device probe, segmented per architecture and
- * per bus interface.
+ * per bus interface. This drives the legacy devices only for now.
*/
+
static int __init ethif_probe(struct net_device *dev)
{
unsigned long base_addr = dev->base_addr;
@@ -541,14 +425,8 @@ static int __init ethif_probe(struct net_device *dev)
return 0;
if (probe_list(dev, mips_probes) == 0)
return 0;
- if (probe_list(dev, ppc_probes) == 0)
- return 0;
if (probe_list(dev, sgi_probes) == 0)
return 0;
- if (probe_list(dev, sparc_probes) == 0)
- return 0;
- if (probe_list(dev, pci_probes) == 0)
- return 0;
if (probe_list(dev, eisa_probes) == 0)
return 0;
if (probe_list(dev, mca_probes) == 0)
@@ -589,28 +467,6 @@ static int __init fddiif_probe(struct net_device *dev)
}
#endif
-#ifdef CONFIG_HIPPI
-static int hippi_probe(struct net_device *dev)
-{
- /*
- * Damn this is ugly.
- *
- * Why the heck would we want to determine this from the base
- * address? Stupid PC'ism .... grrrrr.
- */
- if (dev->base_addr == -1)
- return 1;
-
- if (1
-#ifdef CONFIG_ROADRUNNER
- && rr_hippi_probe(dev)
-#endif
- && 1 ) {
- return 1; /* -ENODEV or -EAGAIN would be more accurate. */
- }
- return 0;
-}
-#endif
/* Pad device name to IFNAMSIZ=16. F.e. __PAD6 is tring of 9 zeros. */
#define __PAD6 "\0\0\0\0\0\0\0\0\0"
@@ -672,16 +528,6 @@ static int fcif_probe(struct net_device *dev)
# define NEXT_DEV (&cops0_dev)
#endif /* COPS */
-#if defined(CONFIG_IPDDP)
- extern int ipddp_init(struct net_device *dev);
- static struct net_device dev_ipddp = {
- "ipddp0" __PAD6,
- 0, 0, 0, 0,
- 0x0, 0,
- 0, 0, 0, NEXT_DEV, ipddp_init };
-# undef NEXT_DEV
-# define NEXT_DEV (&dev_ipddp)
-#endif /* CONFIG_IPDDP */
/* The first device defaults to I/O base '0', which means autoprobe. */
#ifndef ETH0_ADDR
@@ -698,109 +544,33 @@ static int fcif_probe(struct net_device *dev)
#define ETH_NOPROBE_ADDR 0xffe0
static struct net_device eth7_dev = {
- "eth7" __PAD4, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, NEXT_DEV, ethif_probe };
+ "eth%d" __PAD5, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, NEXT_DEV, ethif_probe };
static struct net_device eth6_dev = {
- "eth6" __PAD4, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, &eth7_dev, ethif_probe };
+ "eth%d" __PAD5, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, &eth7_dev, ethif_probe };
static struct net_device eth5_dev = {
- "eth5" __PAD4, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, &eth6_dev, ethif_probe };
+ "eth%d" __PAD5, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, &eth6_dev, ethif_probe };
static struct net_device eth4_dev = {
- "eth4" __PAD4, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, &eth5_dev, ethif_probe };
+ "eth%d" __PAD5, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, &eth5_dev, ethif_probe };
static struct net_device eth3_dev = {
- "eth3" __PAD4, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, &eth4_dev, ethif_probe };
+ "eth%d" __PAD5, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, &eth4_dev, ethif_probe };
static struct net_device eth2_dev = {
- "eth2" __PAD4, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, &eth3_dev, ethif_probe };
+ "eth%d" __PAD5, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, &eth3_dev, ethif_probe };
static struct net_device eth1_dev = {
- "eth1" __PAD4, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, &eth2_dev, ethif_probe };
+ "eth%d" __PAD5, 0,0,0,0,ETH_NOPROBE_ADDR /* I/O base*/, 0,0,0,0, &eth2_dev, ethif_probe };
static struct net_device eth0_dev = {
- "eth0" __PAD4, 0, 0, 0, 0, ETH0_ADDR, ETH0_IRQ, 0, 0, 0, &eth1_dev, ethif_probe };
+ "eth%d" __PAD5, 0, 0, 0, 0, ETH0_ADDR, ETH0_IRQ, 0, 0, 0, &eth1_dev, ethif_probe };
# undef NEXT_DEV
# define NEXT_DEV (&eth0_dev)
-#if defined(SLIP) || defined(CONFIG_SLIP)
- /* To be exact, this node just hooks the initialization
- routines to the device structures. */
-extern int slip_init_ctrl_dev(struct net_device *);
-static struct net_device slip_bootstrap = {
- "slip_proto", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, slip_init_ctrl_dev, };
-#undef NEXT_DEV
-#define NEXT_DEV (&slip_bootstrap)
-#endif /* SLIP */
-
-#if defined(X25_ASY) || defined(CONFIG_X25_ASY)
- /* To be exact, this node just hooks the initialization
- routines to the device structures. */
-extern int x25_asy_init_ctrl_dev(struct net_device *);
-static struct net_device x25_asy_bootstrap = {
- "x25_proto", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, x25_asy_init_ctrl_dev, };
-#undef NEXT_DEV
-#define NEXT_DEV (&x25_asy_bootstrap)
-#endif /* X25_ASY */
-
-#if defined(CONFIG_MKISS)
- /* To be exact, this node just hooks the initialization
- routines to the device structures. */
-extern int mkiss_init_ctrl_dev(struct net_device *);
-static struct net_device mkiss_bootstrap = {
- "mkiss_proto", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, mkiss_init_ctrl_dev, };
-#undef NEXT_DEV
-#define NEXT_DEV (&mkiss_bootstrap)
-#endif /* MKISS */
-
-#if defined(CONFIG_YAM)
-extern int yam_init(struct net_device *);
-static struct net_device yam_bootstrap = {
- "yam", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, yam_init, };
-#undef NEXT_DEV
-#define NEXT_DEV (&yam_bootstrap)
-#endif /* CONFIG_YAM */
-
-#if defined(CONFIG_STRIP)
-extern int strip_init_ctrl_dev(struct net_device *);
-static struct net_device strip_bootstrap = {
- "strip_proto", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, strip_init_ctrl_dev, };
-#undef NEXT_DEV
-#define NEXT_DEV (&strip_bootstrap)
-#endif /* STRIP */
-
-#if defined(CONFIG_PPP)
-extern int ppp_init(struct net_device *);
-static struct net_device ppp_bootstrap = {
- "ppp_proto", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, ppp_init, };
-#undef NEXT_DEV
-#define NEXT_DEV (&ppp_bootstrap)
-#endif /* PPP */
-
-#ifdef CONFIG_DUMMY
- extern int dummy_init(struct net_device *dev);
- static struct net_device dummy_dev = {
- "dummy" __PAD5, 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, dummy_init, };
-# undef NEXT_DEV
-# define NEXT_DEV (&dummy_dev)
-#endif
-
-#ifdef CONFIG_EQUALIZER
-extern int eql_init(struct net_device *dev);
-struct net_device eql_dev = {
- "eql" __PAD3, /* Master device for IP traffic load
- balancing */
- 0x0, 0x0, 0x0, 0x0, /* recv end/start; mem end/start */
- 0, /* base I/O address */
- 0, /* IRQ */
- 0, 0, 0, /* flags */
- NEXT_DEV, /* next device */
- eql_init /* set up the rest */
-};
-# undef NEXT_DEV
-# define NEXT_DEV (&eql_dev)
-#endif
+
#ifdef CONFIG_TR
/* Token-ring device probe */
extern int ibmtr_probe(struct net_device *);
extern int olympic_probe(struct net_device *);
-extern int sktr_probe(struct net_device *);
+extern int tms380tr_probe(struct net_device *);
static int
trif_probe(struct net_device *dev)
@@ -813,7 +583,7 @@ trif_probe(struct net_device *dev)
&& olympic_probe(dev)
#endif
#ifdef CONFIG_SKTR
- && sktr_probe(dev)
+ && tms380tr_probe(dev)
#endif
#ifdef CONFIG_SMCTR
&& smctr_probe(dev)
@@ -824,21 +594,21 @@ trif_probe(struct net_device *dev)
return 0;
}
static struct net_device tr7_dev = {
- "tr7" __PAD3,0,0,0,0,0,0,0,0,0, NEXT_DEV, trif_probe };
+ "tr%d" __PAD3,0,0,0,0,0,0,0,0,0, NEXT_DEV, trif_probe };
static struct net_device tr6_dev = {
- "tr6" __PAD3,0,0,0,0,0,0,0,0,0, &tr7_dev, trif_probe };
+ "tr%d" __PAD3,0,0,0,0,0,0,0,0,0, &tr7_dev, trif_probe };
static struct net_device tr5_dev = {
- "tr5" __PAD3,0,0,0,0,0,0,0,0,0, &tr6_dev, trif_probe };
+ "tr%d" __PAD3,0,0,0,0,0,0,0,0,0, &tr6_dev, trif_probe };
static struct net_device tr4_dev = {
- "tr4" __PAD3,0,0,0,0,0,0,0,0,0, &tr5_dev, trif_probe };
+ "tr%d" __PAD3,0,0,0,0,0,0,0,0,0, &tr5_dev, trif_probe };
static struct net_device tr3_dev = {
- "tr3" __PAD3,0,0,0,0,0,0,0,0,0, &tr4_dev, trif_probe };
+ "tr%d" __PAD3,0,0,0,0,0,0,0,0,0, &tr4_dev, trif_probe };
static struct net_device tr2_dev = {
- "tr2" __PAD3,0,0,0,0,0,0,0,0,0, &tr3_dev, trif_probe };
+ "tr%d" __PAD3,0,0,0,0,0,0,0,0,0, &tr3_dev, trif_probe };
static struct net_device tr1_dev = {
- "tr1" __PAD3,0,0,0,0,0,0,0,0,0, &tr2_dev, trif_probe };
+ "tr%d" __PAD3,0,0,0,0,0,0,0,0,0, &tr2_dev, trif_probe };
static struct net_device tr0_dev = {
- "tr0" __PAD3,0,0,0,0,0,0,0,0,0, &tr1_dev, trif_probe };
+ "tr%d" __PAD3,0,0,0,0,0,0,0,0,0, &tr1_dev, trif_probe };
# undef NEXT_DEV
# define NEXT_DEV (&tr0_dev)
@@ -865,28 +635,6 @@ static struct net_device tr0_dev = {
#define NEXT_DEV (&fddi0_dev)
#endif
-#ifdef CONFIG_HIPPI
- static struct net_device hip3_dev =
- {"hip3" __PAD4, 0, 0, 0, 0, 0, 0, 0, 0, 0, NEXT_DEV, hippi_probe};
- static struct net_device hip2_dev =
- {"hip2" __PAD4, 0, 0, 0, 0, 0, 0, 0, 0, 0, &hip3_dev, hippi_probe};
- static struct net_device hip1_dev =
- {"hip1" __PAD4, 0, 0, 0, 0, 0, 0, 0, 0, 0, &hip2_dev, hippi_probe};
- static struct net_device hip0_dev =
- {"hip0" __PAD4, 0, 0, 0, 0, 0, 0, 0, 0, 0, &hip1_dev, hippi_probe};
-
-#undef NEXT_DEV
-#define NEXT_DEV (&hip0_dev)
-#endif
-
-#ifdef CONFIG_APBIF
- extern int bif_init(struct net_device *dev);
- static struct net_device bif_dev = {
- "bif" __PAD3, 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, bif_init };
-# undef NEXT_DEV
-# define NEXT_DEV (&bif_dev)
-#endif
-
#ifdef CONFIG_NET_FC
static struct net_device fc1_dev = {
@@ -921,27 +669,7 @@ static struct net_device tr0_dev = {
#endif
-#ifdef CONFIG_NET_SB1000
- extern int sb1000_probe(struct net_device *dev);
- static struct net_device sb1000_dev = {
- "cm0", 0x0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 0, NEXT_DEV, sb1000_probe };
-# undef NEXT_DEV
-# define NEXT_DEV (&sb1000_dev)
-#endif
-extern int loopback_init(struct net_device *dev);
-struct net_device loopback_dev = {
- "lo" __PAD2, /* Software Loopback interface */
- 0x0, /* recv memory end */
- 0x0, /* recv memory start */
- 0x0, /* memory end */
- 0x0, /* memory start */
- 0, /* base I/O address */
- 0, /* IRQ */
- 0, 0, 0, /* flags */
- NEXT_DEV, /* next device */
- loopback_init /* loopback_init should set up the rest */
-};
-
-struct net_device *dev_base = &loopback_dev;
+struct net_device *dev_base = NEXT_DEV;
rwlock_t dev_base_lock = RW_LOCK_UNLOCKED;
+