usb_storage: blacklist Enclosure Service Devices
authorSoeren Moch <smoch@web.de>
Sat, 8 Nov 2014 06:02:14 +0000 (07:02 +0100)
committerMarek Vasut <marex@denx.de>
Sat, 8 Nov 2014 11:03:35 +0000 (12:03 +0100)
Skip enclosure service devices when probing for usb storage devices.

This avoids long timeouts when probing for external usb harddisks
which provide "Enclosure Services".

Signed-off-by: Soeren Moch <smoch@web.de>
--

This is a new version of the patch
"usb_storage: skip all unknown devices when probing"
http://http://lists.denx.de/pipermail/u-boot/2014-November/194622.html

Cc: Marek Vasut <marex@denx.de>
Cc: Tom Rini <trini@ti.com>
common/usb_storage.c

index eb7706c100c402a696a4ae57a2dae9bf3b2d2119..1411737bed8912180810c0e9cb239f4602a52bfa 100644 (file)
@@ -1351,8 +1351,11 @@ int usb_stor_get_info(struct usb_device *dev, struct us_data *ss,
        perq = usb_stor_buf[0];
        modi = usb_stor_buf[1];
 
-       if ((perq & 0x1f) == 0x1f) {
-               /* skip unknown devices */
+       /*
+        * Skip unknown devices (0x1f) and enclosure service devices (0x0d),
+        * they would not respond to test_unit_ready .
+        */
+       if (((perq & 0x1f) == 0x1f) || ((perq & 0x1f) == 0x0d)) {
                return 0;
        }
        if ((modi&0x80) == 0x80) {