[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-usb-devel
Subject:    Re: [linux-usb-devel] Re: [PATCH] Adaptec USBXchange and USB2Xchange support
From:       Matthew Dharm <mdharm-kernel () one-eyed-alien ! net>
Date:       2006-01-30 21:40:05
Message-ID: 20060130214005.GB20739 () one-eyed-alien ! net
[Download RAW message or body]

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: mdharm-usb@one-eyed-alien.net 
Maintainer, Linux USB Mass Storage Driver

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

[Attachment #3 (application/pgp-signature)]
-------------------------------------------------------
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&kid=103432&bid=230486&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic