Hi, >> When ep1 receives CBW data, the isr routine is called. Then in isr, to >> get the usb_request: >> >> usb_request * req; >> req = list_entry(dev->ep[2].queue.next, struct kagen2_request, queue); >> >> however, the list_empty(&dev->ep[2].queue) is true. Where is the >> appropriate place to add list entry? > > only you will know, but your implementation of ep_queue is a nice bet. i have list_add_tail() in my ep_queue() function. Prior to ep1 receiving data, my ep_queue() is called to send 0x00 to ep0. then it is not called. how to make it to be called by file gadget, in order to queue the request before ep1 interrupt? 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