Alan,

all i can do is to confirm your finding.

> I've finally ended up using 2.5 on a box with OHCI. Its a little bit
> wobbly to say the least
>
> - Some boots it finds the root hub but nothing beyond it

I'm not a hacker enough to fix it, but i tried some stuff David sent me, and 
the attached patch at least helped to finish booting. He located a lot of 
broken TDs in my logs, too, which one can find attached in earlier mails.

I had not too bad results on 2.5.42, but was not able to get 2.5.44 much 
beyond init even with a pretty reduced set of features and drivers, but quite 
some usb devices were successfully initialized at least before the boot 
process finally got hung. I have 3 hubs involved. I did not deactivate devfs 
and the boot locked up shortly after devfsd announced it's existances, though 
this might be unrelated.

All i can do is to offer testing.

Lars
--- ./drivers-dist//base/core.c	Sun Oct 13 04:29:37 2002
+++ ./drivers//base/core.c	Sun Oct 13 13:48:51 2002
@@ -55,5 +55,5 @@
 static int found_match(struct device * dev, struct device_driver * drv)
 {
-	int error = 0;
+	int error;
 
 	if (!(error = probe(dev,get_driver(drv)))) {
@@ -65,5 +65,5 @@
 		dev->driver = NULL;
 	}
-	return error;
+	return error == 0;
 }
 
@@ -76,5 +76,7 @@
  * It calls the bus's match callback to check if the driver supports
  * the device. If so, it calls the found_match() function above to 
- * take care of all the details.
+ * try taking care of all the details.
+ *
+ * Returns zero (to continue the scan) if the driver didn't attach.
  */
 static int do_device_attach(struct device_driver * drv, void * data)

Reply via email to