Re: Linux USB file storage gadget with new UDC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 21 Mar 2013, victor yeo wrote:

> Hi,
> 
> On Wed, Mar 20, 2013 at 10:22 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> > On Wed, 20 Mar 2013, victor yeo wrote:
> >
> >> Thanks, i add processing the pending data from FIFO after queue was
> >> called. The UDC driver can process the SCSI INQUIRY command and SCSI
> >> READ FORMAT CAPACITIES command now.
> >>
> >> In the processing of SCSI READ FORMAT CAPACITIES command, there is
> >> attention condition. Then the bulk transfer stops completely and
> >> control transfer is repeated.
> >
> > What control transfer?
> 
> those get descriptor requests.

You might make better progress if you use a Linux-based host for your 
testing.  Then you could use usbmon on the host to see what's 
happening.

> >> How can i solve it?
> >
> > First you have to figure out why it isn't working.  What does the
> > debugging information show?
> 
> Here is some debugging information:
> 
> receive GET_DESCRIPTOR, 80, 6 index 0 value 200 len 20
> receive SET_CONFIGURATION, 0, 9 index 0 value 1 len 0
> set curlun->unit_attention_data to SS_NO_SENSE
> do_set_config() is called because of FSG_STATE_CONFIG_CHANGE
> do_set_interface() is called
> set curlun->unit_attention_data to SS_RESET_OCCURRED
> receive *UNKNOWN*, a1, fe index 0 value 0 len 1
> receive SCSI Inquiry
> receive SCSI read format capacities, get attention condition,
> curlun->unit_attention_data is 062900 (SS_RESET_OCCURRED)

Up to this point, everything is normal.  We need to see what happens 
next.

> The gadget code is able to process SCSI Inquiry because it does not
> fulfill the if-condition:
> 
>         if (curlun && curlun->unit_attention_data != SS_NO_SENSE  &&
>                         fsg->cmnd[0] != INQUIRY &&
>                         fsg->cmnd[0] != REQUEST_SENSE) {

Yes, I know.  I wrote that code.

> Why is curlun->unit_attention_data set to SS_RESET_OCCURRED?

Because the gadget gets reset when it receives a Set-Config request.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux