usb-storage: Wait less time for settling when a memory device isconnected

From: Martin Bammer
Date: Fri Mar 06 2009 - 05:34:23 EST


Hi,

I was wondering why the usb-storage driver waits for my usb-stick and my
sdhc-card 5s before scanning. IMHO this is only needed for HDs. I've
created a patch for the driver which shortens the timeout to 1s when a
memory device is detected.
But I'm not shure if the detection code is right for all devices. This
maybe has to be tested and discussed.
I've tested it with a usb-stick, a sdhc-card and a usb-harddrive.
This patch is created for kernel 2.6.27.18.

Please CC me for answers to this thread.

--- a/drivers/usb/storage/usb.c 2009-03-03 23:33:37.000000000 +0100
+++ b/drivers/usb/storage/usb.c 2009-03-03 23:32:44.000000000 +0100
@@ -913,10 +913,16 @@ static int usb_stor_scan_thread(void * _

set_freezable();

+ /* Shorten delay time for memory sticks/cards */
+ if ((1 == us->pusb_dev->descriptor.iManufacturer)
+ && (2 == us->pusb_dev->descriptor.iProduct)
+ && (3 == us->pusb_dev->descriptor.iSerialNumber)
+ && (delay_use > 0)) delay_use = 1;
+
/* Wait for the timeout to expire or for a disconnect */
if (delay_use > 0) {
printk(KERN_DEBUG "usb-storage: waiting for device "
- "to settle before scanning\n");
+ "to settle before scanning for %d
seconds\n", delay_use);
wait_event_freezable_timeout(us->delay_wait,
test_bit(US_FLIDX_DONT_SCAN,
&us->dflags),
delay_use * HZ);


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/