Hi, On Tue, Jan 22, 2013 at 11:47:09AM +0800, victor yeo wrote: > >> > >> Some progress, now i am able to see the dump_msg from ep0_complete(). > >> > >> It looks like the enumeration is ok, but the SCSI Inquiry command is > >> > >> not received by the UDC driver. The do_scsi_command() in > >> > >> fsg_main_thread() is not called. Is this another bug in my UDC driver? > >> > > > >> > > I would believe so since so many other controllers work just fine. > >> > > >> > Is there any way to to further debug into why do_scsi_command() is not called? > >> > >> usbmon, printk(), trace_printk(), kernel function tracer, there are many > >> ways choose one and spend some time debugging, I'm sure you'll find the > >> bug. > > > > 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 ? -- balbi
Attachment:
signature.asc
Description: Digital signature