Commit 2aa680b1 authored by Matthew Dharm's avatar Matthew Dharm Committed by Greg Kroah-Hartman

[PATCH] USB: usb-storage driver changes for 2.6.x [3/4]

This patch adds some clear-halt calls if a GetMaxLUN fails.  Apparently,
some devices (like certain early-rev Zip100s) stall their bulk pipes if
they receive a GetMaxLUN.
parent 676cad77
...@@ -908,6 +908,17 @@ int usb_stor_Bulk_max_lun(struct us_data *us) ...@@ -908,6 +908,17 @@ int usb_stor_Bulk_max_lun(struct us_data *us)
USB_RECIP_INTERFACE, USB_RECIP_INTERFACE,
0, us->ifnum, us->iobuf, 1, HZ); 0, us->ifnum, us->iobuf, 1, HZ);
/*
* Some devices (i.e. Iomega Zip100) need this -- apparently
* the bulk pipes get STALLed when the GetMaxLUN request is
* processed. This is, in theory, harmless to all other devices
* (regardless of if they stall or not).
*/
if (result < 0) {
usb_stor_clear_halt(us, us->recv_bulk_pipe);
usb_stor_clear_halt(us, us->send_bulk_pipe);
}
US_DEBUGP("GetMaxLUN command result is %d, data is %d\n", US_DEBUGP("GetMaxLUN command result is %d, data is %d\n",
result, us->iobuf[0]); result, us->iobuf[0]);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment