Hi,

finally - I got multi target (that is a SCSI device other than ID = 0 and more 
than than one) working
with the USB2Xchange. But it needs two ugly changes in transport.c:

The first one is only encoding the ID, no LUN:

--- ../linux-2.6.15/drivers/usb/storage/transport.c     2006-01-03 
04:21:10.000000000 +0100
+++ drivers/usb/storage/transport.c     2006-01-30 18:49:25.172317000 +0100
@@ -983,7 +983,7 @@
        bcb->Tag = ++us->tag;
        bcb->Lun = srb->device->lun;
        if (us->flags & US_FL_SCM_MULT_TARG)
-               bcb->Lun |= srb->device->id << 4;
+               bcb->Lun = srb->device->id;
        bcb->Length = srb->cmd_len;
 
        /* copy the command payload */

Would it be ok when special case that one only for the Adaptec device, for now?
Or define a whole new 2nd MULTI_TARG(2) quirk?

And furthermore the device does not respond to request other than the attached 
targets,
this might be needed:

@@ -1069,6 +1069,19 @@
        US_DEBUGP("Bulk Status S 0x%x T 0x%x R %u Stat 0x%x\n",
                        le32_to_cpu(bcs->Signature), bcs->Tag, 
                        residue, bcs->Status);
+
+       if (bcs->Status > US_BULK_STAT_FAIL) {
+               /* Adaptec USB2XCHANGE */
+               if (us->pusb_dev->descriptor.idVendor == 0x03f3 &&
+                   us->pusb_dev->descriptor.idProduct == 0x2003) {
+
+                       /* This device will send bcs->Status == 0x8a for unused 
targets and
+                          == 0x02 for SRB's that require SENSE. */
+                       bcs->Status = US_BULK_STAT_OK;
+                       fake_sense = 1;
+                       US_DEBUGP("Patched Bulk status to %d.\n", bcs->Status);
+               }
+       }
        if (bcs->Tag != us->tag || bcs->Status > US_BULK_STAT_PHASE) {
                US_DEBUGP("Bulk logical error\n");
                return USB_STOR_TRANSPORT_ERROR;

Yours,

-- 
René Rebe - Rubensstr. 64 - 12157 Berlin (Europe / Germany)
            http://www.exactcode.de | http://www.t2-project.org
            +49 (0)30  255 897 45


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid3432&bid#0486&dat1642
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to