Re: Linux USB file storage gadget with new UDC

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

 



On Tue, Jan 22, 2013 at 10:49:50PM +0800, victor yeo wrote:
> Hi,
> 
> >> >> > It sounds like the UDC driver now works okay for control transfers but
> >> >> > not for bulk transfers.
> >> >> >
> >> >>
> >> >> Some code in file_storage.c that i cannot understand. In
> >> >> ep0_complete(), the code snippet:
> >> >>
> >> >>         if (req->status == 0 && req->context)
> >> >>                 ((fsg_routine_t) (req->context))(fsg);
> >> >>
> >> >> Does the UDC driver provide the context pointer to file_storage.c?
> >> >
> >> > That belongs to the gadget driver. file_storage.c maintains that
> >> > req->context.
> >> >
> >> >> Another gadget question: get_next_command() is receiving command from
> >> >> host PC, UDC HW isr routine is also receiving data from host PC. What
> >> >> is the difference between these two?
> >> >
> >> > hmm... ISR receives data and bounces it back to gadget driver. What do
> >> > you mean ?
> >>
> >> Ok, rephrase the question, is this the flow for bulk transfer?
> >>
> >> 1) data is received by Usb mass storage HW, the UDC driver ISR is
> >> called to read the data to usb_request buffer
> >> 2) bulk_out_complete() in gadget driver, is called to set buffer state to full
> >> 3) get_next_command() in gadget driver, is called to read the CBW.
> >> 4) do_scsi_command() to process SCSI command encoded in CBW
> >> 5) send_status() sends the CSW to host
> >
> > Something like below:
> >
> > OUT Token -> ISR -> giveback() -> bulk_out_complete() ->
> > get_next_command() -> do_scsi_command() -> usb_ep_queue() -> OUT/IN
> > Token -> ISR -> bulk_out_complete() -> send_status()
> 
> For the IN Token, i will just write the data to the HW buffer, and the
> flow will go to send_status().
> 
> I use a different USB cable, now the USB gadget is able to receive
> bulk transfer data from host PC. I am working on the bulk transfer
> code. Thank you for the very useful answers.

np

-- 
balbi

Attachment: signature.asc
Description: Digital signature


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

  Powered by Linux