patch-2.4.19 linux-2.4.19/drivers/usb/storage/shuttle_usbat.c
Next file: linux-2.4.19/drivers/usb/storage/transport.c
Previous file: linux-2.4.19/drivers/usb/storage/sddr09.c
Back to the patch index
Back to the overall index
- Lines: 60
- Date:
Fri Aug 2 17:39:45 2002
- Orig file:
linux-2.4.18/drivers/usb/storage/shuttle_usbat.c
- Orig date:
Mon Feb 25 11:38:07 2002
diff -urN linux-2.4.18/drivers/usb/storage/shuttle_usbat.c linux-2.4.19/drivers/usb/storage/shuttle_usbat.c
@@ -1,10 +1,13 @@
/* Driver for SCM Microsystems USB-ATAPI cable
*
- * $Id: shuttle_usbat.c,v 1.15 2001/12/08 23:32:48 mdharm Exp $
+ * $Id: shuttle_usbat.c,v 1.16 2002/02/25 00:40:13 mdharm Exp $
*
* Current development and maintenance by:
* (c) 2000, 2001 Robert Baruch (autophile@starband.net)
*
+ * Developed with the assistance of:
+ * (c) 2002 Alan Stern <stern@rowland.org>
+ *
* Many originally ATAPI devices were slightly modified to meet the USB
* market by using some kind of translation from ATAPI to USB on the host,
* and the peripheral would translate from USB back to ATAPI.
@@ -107,8 +110,8 @@
/* a stall is a fatal condition from the device */
if (result == -EPIPE) {
US_DEBUGP("-- Stall on control pipe. Clearing\n");
- result = usb_clear_halt(us->pusb_dev, pipe);
- US_DEBUGP("-- usb_clear_halt() returns %d\n", result);
+ result = usb_stor_clear_halt(us, pipe);
+ US_DEBUGP("-- usb_stor_clear_halt() returns %d\n", result);
return USB_STOR_TRANSPORT_FAILED;
}
@@ -140,7 +143,7 @@
US_DEBUGP("EPIPE: clearing endpoint halt for"
" pipe 0x%x, stalled at %d bytes\n",
pipe, act_len);
- usb_clear_halt(us->pusb_dev, pipe);
+ usb_stor_clear_halt(us, pipe);
}
if (result) {
@@ -515,7 +518,7 @@
*/
if (direction==SCSI_DATA_READ && i==0)
- usb_clear_halt(us->pusb_dev,
+ usb_stor_clear_halt(us,
usb_sndbulkpipe(us->pusb_dev,
us->ep_out));
/*
@@ -675,9 +678,15 @@
len = short_pack(data[7+9], data[7+8]);
len <<= 16;
len |= data[7+7];
+ US_DEBUGP("handle_read10: GPCMD_READ_CD: len %d\n", len);
srb->transfersize = srb->request_bufflen/len;
}
+ if (!srb->transfersize) {
+ srb->transfersize = 2048; /* A guess */
+ US_DEBUGP("handle_read10: transfersize 0, forcing %d\n",
+ srb->transfersize);
+ }
len = (65535/srb->transfersize) * srb->transfersize;
US_DEBUGP("Max read is %d bytes\n", len);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)