Hello,

After compiling a new 2.6 kernel my Hewlett Packard Scanner 4300C was no
longer detected.
The console output was usb_control/bulk_msg: timeout

I investigated the source code (and some posts) and found a difference in
the file of 2.6 compared to 2.4

In 2.4.21 drivers/usb/usb.c line 2157 was:
err = usb_get_string(dev, dev->string_langid, index, tbuf, 255);

Now in 2.6.0 drivers/usb/core/message.c line 1208:
err = usb_get_string(dev, dev->string_langid, index, tbuf, len);

after setting to parameter len = 255 the device worked right away.

My scanner apparently reports the string descriptor length incorrectly,
which leads to a global denial of the whole device.

Though, users said they would post this problem with kernel 2.6.0, the issue
is still persistent in kernel version 2.6.3.

I doubt that this specific scanner is the only device that reports a wrong
string descriptor length.
The 2.4 kernels were much more "forgiving" and therefore the string length
descriptor never was a problem.
The devices also work properly in the Win32 world. So relaxed handling of
this (now very critical parameter) made all these devices work (which now
apparently are not even detected).

Would be a pity, when a whole set of USB-devices would no longer work on
Linux, wouldn't  it?
If the standard code would stay the way it is, probably a whole bunch of
USB-devices will no longer work with stock-kernels.

Thank you for your patience and skills

Regards

Ullrich 




-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to