On Wed, Mar 20, 2013 at 03:41:08PM +0800, victor yeo wrote: > Hi, > > On Sat, Mar 16, 2013 at 1:49 AM, Felipe Balbi <balbi@xxxxxx> wrote: > > On Fri, Mar 15, 2013 at 11:00:45AM -0400, Alan Stern wrote: > >> On Fri, 15 Mar 2013, Felipe Balbi wrote: > >> > >> > On Fri, Mar 15, 2013 at 04:26:10PM +0800, victor yeo wrote: > >> > > Hi, > >> > > > >> > > > On Fri, Mar 15, 2013 at 01:59:30PM +0800, victor yeo wrote: > >> > > >> For bulk transfer, the new UDC driver has one problem. When SCSI > >> > > >> Inquiry command is received, the UDC driver interrupt routine will > >> > > >> receive it first. However, the queue function is not yet called, and > >> > > >> queue buffer is not yet added. Thus, interrupt routine is not able to > >> > > >> store the SCSI Inquiry command to the queue buffer. > >> > > >> > >> > > >> This is a serious problem, what is the way to synchronise UDC driver > >> > > >> and file storage gadget driver for SCSI command bulk transfer? > >> > > > > >> > > > don't process the interrupt until you receive a queue. Data will be > >> > > > pending in controller's FIFO until then. > >> > > > > >> > > > >> > > change to do exactly that, bulk transfer interrupt come in, don't > >> > > process, then queue function is called to add queue buffer. After > >> > > that, no more bulk transfer interrupt come in. > >> > > >> > did you process the pending data from FIFO after queue was called ? > >> > >> I'm not sure about the details of how the controller hardware works. > >> But what should happen is this: When the controller receives the bulk > >> packet containing the INQUIRY command, it should send back NAK until it > >> has a buffer ready to store the packet. > > > > right, with all controllers I have seen so far, this means just not > > processing the interrupt, AKA not starting a transfer. > > > > 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. How can i solve it? by fixing your driver -- balbi
Attachment:
signature.asc
Description: Digital signature