[sane-devel] usb_control/bulk_msg: timeout

A E Lawrence A.E.Lawrence@lboro.ac.uk
Fri, 03 Jan 2003 22:23:37 +0000


This is a multi-part message in MIME format.
--------------090209090207000603090402
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

I saw the thread in the archives with this subject. And so I attach a note
on how I have fixed the problem on my system.

ael

--------------090209090207000603090402
Content-Type: text/plain;
 name="usb_TIMEOUT.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="usb_TIMEOUT.txt"

GET_TIMEOUT in usb.c requires a larger value to permit hotplugging
------------------------------------------------------------------

drivers/usb/usb.c from 2.4.20 (no version number in file)

#ifdef CONFIG_USB_LONG_TIMEOUT
#define GET_TIMEOUT 20          <== This was 4
#else
#define GET_TIMEOUT 3
#endif
#define SET_TIMEOUT 3

Hotplugging my usb Epson scanner ceased to work sometime ago. I have just 
traced this to a short GET_TIMEOUT in usb.c as above.

It is well known that Epson scanners take a long time to respond.
Mine takes around 12 seconds: the explanation seems to be that it switchs
on the transparency light source and waits for it to stabilize before answering
enquiries. This is covered in scanner.c which uses extended timeouts for
Epsons.

However, even with CONFIG_USB_LONG_TIMEOUT set, the timeout in usbcore is only
4 seconds, so the hotplug script does not get called to load that scanner
module. So the longer value of GET_TIMEOUT needs to be increased to at least
15 seconds, perhaps much longer to cover other devices that may be even slower?
Or should it become a module parameter?

A.E.Lawrence

--------------090209090207000603090402--