netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] (1/12) Probe2 infrastructure for 2.6 experimental
@ 2003-10-14 22:34 Stephen Hemminger
  2003-10-14 23:28 ` David S. Miller
  0 siblings, 1 reply; 3+ messages in thread
From: Stephen Hemminger @ 2003-10-14 22:34 UTC (permalink / raw)
  To: jgarzik; +Cc: netdev

New infrastructure to allow probing older builtin drivers (like ISA)
Originally by Al Viro, updated to apply agains jgarzik/net-drivers-2.5-exp

diff -Nru a/drivers/net/Space.c b/drivers/net/Space.c
--- a/drivers/net/Space.c	Fri Oct 10 10:07:40 2003
+++ b/drivers/net/Space.c	Fri Oct 10 10:07:40 2003
@@ -110,6 +110,11 @@
 	int status;	/* non-zero if autoprobe has failed */
 };
 
+struct devprobe2 {
+	struct net_device *(*probe)(int unit);
+	int status;	/* non-zero if autoprobe has failed */
+};
+
 /*
  * probe_list walks a list of probe functions and calls each so long
  * as a non-zero ioaddr is given, or as long as it hasn't already failed 
@@ -135,6 +140,21 @@
 	return -ENODEV;
 }
 
+static int __init probe_list2(int unit, struct devprobe2 *p, int autoprobe)
+{
+	struct net_device *dev;
+	for (; p->probe; p++) {
+		if (autoprobe && p->status)
+			continue;
+		dev = p->probe(unit);
+		if (!IS_ERR(dev))
+			return 0;
+		if (autoprobe)
+			p->status = PTR_ERR(dev);
+	}
+	return -ENODEV;
+}
+
 /*
  * 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
@@ -372,6 +392,16 @@
 	return err;
 
 }
+ 
+static void __init ethif_probe2(int unit)
+{
+	unsigned long base_addr = netdev_boot_base("eth", unit);
+
+	if (base_addr == 1)
+		return;
+
+	return;	/* nothing yet */
+}
 
 #ifdef CONFIG_TR
 /* Token-ring device probe */
@@ -440,7 +470,8 @@
 		trif_probe(num);
 #endif
 	for (num = 0; num < 8; ++num)
-		ethif_probe(num);
+		if (!ethif_probe(num))
+			ethif_probe2(num);
 
 #ifdef CONFIG_COPS
 	cops_probe(0);
diff -Nru a/include/linux/netdevice.h b/include/linux/netdevice.h
--- a/include/linux/netdevice.h	Fri Oct 10 10:07:40 2003
+++ b/include/linux/netdevice.h	Fri Oct 10 10:07:40 2003
@@ -496,6 +496,7 @@
 extern void		probe_old_netdevs(void);
 extern int			netdev_boot_setup_add(char *name, struct ifmap *map);
 extern int 			netdev_boot_setup_check(struct net_device *dev);
+extern unsigned long		netdev_boot_base(const char *prefix, int unit);
 extern struct net_device    *dev_getbyhwaddr(unsigned short type, char *hwaddr);
 extern void		dev_add_pack(struct packet_type *pt);
 extern void		dev_remove_pack(struct packet_type *pt);
diff -Nru a/net/core/dev.c b/net/core/dev.c
--- a/net/core/dev.c	Fri Oct 10 10:07:40 2003
+++ b/net/core/dev.c	Fri Oct 10 10:07:40 2003
@@ -371,6 +371,30 @@
 	return 0;
 }
 
+
+/**
+ *	netdev_boot_base	- get address from boot time settings
+ *	@prefix: prefix for network device
+ *	@unit: id for network device
+ *
+ * 	Check boot time settings for the base address of device.
+ *	The found settings are set for the device to be used
+ *	later in the device probing.
+ *	Returns 0 if no settings found.
+ */
+unsigned long netdev_boot_base(const char *prefix, int unit)
+{
+	const struct netdev_boot_setup *s = dev_boot_setup;
+	char name[IFNAMSIZ];
+	int i;
+
+	sprintf(name, "%s%d", prefix, unit);
+	for (i = 0; i < NETDEV_BOOT_SETUP_MAX; i++)
+		if (!strcmp(name, s[i].name))
+			return s[i].map.base_addr;
+	return 0;
+}
+
 /*
  * Saves at boot time configured settings for any netdevice.
  */

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] (1/12) Probe2 infrastructure for 2.6 experimental
  2003-10-14 22:34 [PATCH] (1/12) Probe2 infrastructure for 2.6 experimental Stephen Hemminger
@ 2003-10-14 23:28 ` David S. Miller
  2003-10-14 23:39   ` Jeff Garzik
  0 siblings, 1 reply; 3+ messages in thread
From: David S. Miller @ 2003-10-14 23:28 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: jgarzik, netdev

On Tue, 14 Oct 2003 15:34:10 -0700
Stephen Hemminger <shemminger@osdl.org> wrote:

> New infrastructure to allow probing older builtin drivers (like ISA)
> Originally by Al Viro, updated to apply agains jgarzik/net-drivers-2.5-exp

All of this looks fine to me, in fact I'm seeing some of these
changes for the 4th or 5th time :-)

Jeff please add them to your tree unless you have a major
objection.

Thanks guys.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] (1/12) Probe2 infrastructure for 2.6 experimental
  2003-10-14 23:28 ` David S. Miller
@ 2003-10-14 23:39   ` Jeff Garzik
  0 siblings, 0 replies; 3+ messages in thread
From: Jeff Garzik @ 2003-10-14 23:39 UTC (permalink / raw)
  To: David S. Miller; +Cc: Stephen Hemminger, netdev

David S. Miller wrote:
> On Tue, 14 Oct 2003 15:34:10 -0700
> Stephen Hemminger <shemminger@osdl.org> wrote:
> 
> 
>>New infrastructure to allow probing older builtin drivers (like ISA)
>>Originally by Al Viro, updated to apply agains jgarzik/net-drivers-2.5-exp
> 
> 
> All of this looks fine to me, in fact I'm seeing some of these
> changes for the 4th or 5th time :-)
> 
> Jeff please add them to your tree unless you have a major
> objection.


I tried a couple times, and each time they didn't apply...

They did now, and, I already have :)

Just pushed them out to net-drivers-2.5-exp in fact...

	Jeff

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-10-14 23:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-10-14 22:34 [PATCH] (1/12) Probe2 infrastructure for 2.6 experimental Stephen Hemminger
2003-10-14 23:28 ` David S. Miller
2003-10-14 23:39   ` Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).