Based on work by Rene Engelhard, and reports from others on the LKML list, it looks like a fix is near final.
The following patch adds support for my ScanLogic-based adapter, OEM'd by H45 technology corp (www.h45.com) There are other folk who have written about this device, and as it seems to have the same issue as the device that Rene wrote his patch for. I've verified that this patch works for my device. What's needed is to see if this dev entry could be consolidated with the version that Rene uses. Rene -- would you be willing to give this a go? The only thing that would need to be changed is the Minimum Rev, so that it matched yours (0x0074) This patch is originally against 2.4.16, but should apply to 2.5 series. --- unusual_devs.h.dist Fri Dec 14 16:17:51 2001 +++ unusual_devs.h Tue Jan 8 07:47:57 2002 @@ -86,6 +86,12 @@ "FinePix 1400Zoom", US_SC_8070, US_PR_CBI, NULL, US_FL_FIX_INQUIRY), +UNUSUAL_DEV( 0x04ce, 0x0002, 0x0200, 0x0240, + "H45 Technology Corp", + "ScanLogic USB ATA/ATAPI Adapter", + US_SC_SCSI, US_PR_BULK, NULL, + US_FL_FIX_INQUIRY | US_FL_SL_IDE_BUG ), + /* Most of the following entries were developed with the help of * Shuttle/SCM directly. */ --- usb.h.dist Fri Dec 14 16:17:44 2001 +++ usb.h Mon Jan 7 20:40:13 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 --- transport.c.dist Fri Nov 9 13:37:14 2001 +++ transport.c Tue Jan 8 07:51:10 2002 @@ -1157,7 +1157,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;
usbat.diff
Description: Binary data