On Mon, 25 Feb 2008, Jan Gutter wrote:

> Hi, I have a Cooler Master X-Craft hard drive enclosure with
> USB ID ed06:8000. (Manufacturer ID according to lsusb is DATAST0R)
> 
> I've had no problems in using the drive on 2.6.23, but on vanilla 2.6.24
> I get a "device not accepting address" error in dmesg. I've done a
> bisect, and found out that if I revert the patch series, (from
> linus-git)
> 
> 4d2f110c51eec853c50f68cf068888a77551c8d3 to
> e015268d2fcfcaef70a1ec535e6381f75aafbf81
> 
> (i.e. the "get rid of urb->lock" and "urb->status" series)
> 
> it works again in 2.6.24. (A more verbose description is listed in the
> bug report below.)
> 
> At first glance, it *looks* like a timing issue. Since a lot of
> spinlocks have been eliminated, the device might just go a little funny
> if it gets responses too fast on init.

Actually the spinlocks weren't eliminated; they were just moved around.
Any difference in speed should be minuscule.

> I've found a similar bug at:
> 
> http://bugzilla.kernel.org/show_bug.cgi?id=8639
> 
> I'm NOT sure that the enclosure has the same chipsets, but it seems very
> likely. I get the exact same kernel messages, tough. I've logged all my
> experiences there, if you need anything else, I would be happy to
> provide!
> 
> My question now is: what would be the best way to add a quirk for this
> to the kernel, and who would best be able to help me with this? Does the
> kernel even know the USB id at the stage that this error occurs? 

Last question first: The kernel does not know the USB IDs at the
"device descriptor read/64" or "device not accepting address" stage.

You can try adding an explicit delay to see if it helps.  In 
drivers/usb/core/hub.c:hub_port_init(), add a call to msleep just 
before the line:

        for (i = 0; i < GET_DESCRIPTOR_TRIES; (++i, msleep(100))) {

I don't know how large an argument to msleep you'll need.  100?  5000?  
Note that there's already a 50-ms delay before the loop begins.

Alan Stern

-
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to