diff -u --recursive linux-2.4.18-pre3/drivers/usb/storage/transport.c linux/drivers/usb/storage/transport.c --- linux-2.4.18-pre3/drivers/usb/storage/transport.c Thu Jan 10 13:08:18 2002 +++ linux/drivers/usb/storage/transport.c Thu Jan 10 13:13:36 2002 @@ -1234,7 +1234,7 @@ le32_to_cpu(bcs.Signature), bcs.Tag, bcs.Residue, bcs.Status); if (bcs.Signature != cpu_to_le32(US_BULK_CS_SIGN) || - bcs.Tag != bcb.Tag || + ((bcs.Tag != bcb.Tag ) && (!(us->flags & US_FL_SL_IDE_BUG))) || bcs.Status > US_BULK_STAT_PHASE || partial != 13) { US_DEBUGP("Bulk logical error\n"); return USB_STOR_TRANSPORT_ERROR; diff -u --recursive linux-2.4.18-pre3/drivers/usb/storage/unusual_devs.h linux/drivers/usb/storage/unusual_devs.h --- linux-2.4.18-pre3/drivers/usb/storage/unusual_devs.h Thu Jan 10 13:08:18 2002 +++ linux/drivers/usb/storage/unusual_devs.h Thu Jan 10 13:13:36 2002 @@ -110,6 +110,28 @@ "LS-120 Camera", US_SC_UFI, US_PR_CBI, NULL, 0), +/* Reported by Peter Wächtler */ +UNUSUAL_DEV( 0x04ce, 0x0002, 0x0074, 0x0074, + "ScanLogic", + "SL11R-IDE 0049SQFP-1.2 A002", + US_SC_SCSI, US_PR_BULK, NULL, + US_FL_FIX_INQUIRY ), + +/* Reported by Leif Sawyer */ +UNUSUAL_DEV( 0x04ce, 0x0002, 0x0240, 0x0240, + "H45 ScanLogic", + "SL11R-IDE 9951SQFP-1.2 K004", + US_SC_SCSI, US_PR_BULK, NULL, + US_FL_FIX_INQUIRY | US_FL_SL_IDE_BUG ), + +/* Reported by Rene Engelhard and + Dylan Egan */ +UNUSUAL_DEV( 0x04ce, 0x0002, 0x0260, 0x0260, + "ScanLogic", + "SL11R-IDE unknown HW rev", + US_SC_SCSI, US_PR_BULK, NULL, + US_FL_SL_IDE_BUG ), + /* Most of the following entries were developed with the help of * Shuttle/SCM directly. */ diff -u --recursive linux-2.4.18-pre3/drivers/usb/storage/usb.h linux/drivers/usb/storage/usb.h --- linux-2.4.18-pre3/drivers/usb/storage/usb.h Thu Nov 22 10:49:34 2001 +++ linux/drivers/usb/storage/usb.h Thu Jan 10 13:13:36 2002 @@ -101,6 +101,7 @@ #define US_FL_IGNORE_SER 0x00000010 /* Ignore the serial number given */ #define US_FL_SCM_MULT_TARG 0x00000020 /* supports multiple targets */ #define US_FL_FIX_INQUIRY 0x00000040 /* INQUIRY response needs fixing */ +#define US_FL_SL_IDE_BUG 0x00000100 /* ScanLogic usb-ide workaround */ #define USB_STOR_STRING_LEN 32