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)