So how do you address a multi-LUN target if you don't encode the LUN?

Matt

On Mon, Jan 30, 2006 at 07:04:15PM +0100, Ren? Rebe wrote:
> 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_______________________________________________
> linux-usb-devel@lists.sourceforge.net
> To unsubscribe, use the last form field at:
> https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

-- 
Matthew Dharm                              Home: [EMAIL PROTECTED] 
Maintainer, Linux USB Mass Storage Driver

A female who groks UNIX?  My universe is collapsing.
                                        -- Mike
User Friendly, 10/11/1998

Attachment: pgp2q95GKDaAz.pgp
Description: PGP signature

Reply via email to