Messages in this thread Patch in this message | | | From | René Rebe <> | Subject | Re: [linux-usb-devel] Re: [PATCH] Adaptec USBXchange and USB2Xchange support | Date | Mon, 30 Jan 2006 19:04:15 +0100 |
| |
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 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |