Re: Linux USB file storage gadget with new UDC

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

 



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.

victor
--
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